Tortoise overlay icons disappear on commit

The behaviour described in the bug report is either by design, or would be far too complex/time-consuming to be changed

Moderators: white, Hacker, petermad, Stefan2

User avatar
Captain
Junior Member
Junior Member
Posts: 25
Joined: 2005-11-23, 09:28 UTC
Location: Cape Town, South Africa

Tortoise overlay icons disappear on commit

Post by *Captain »

Hi

when I check in one file all the overlay icons for Tortoise subversion disappear for the other files in the folder and I have to navigate out of the folder and back in again for the icons to come back. This behaviour is also erratic and does not happen all the time.

Pete
User avatar
PeaceMaker
Senior Member
Senior Member
Posts: 287
Joined: 2005-12-31, 22:32 UTC
Location: Warsaw, Poland
Contact:

Post by *PeaceMaker »

...I'll check it out :!:
[face=tahoma]LICENSE NUMBER: #101897 Single user license (since: 6th February 2004)
CURRENT VERSION: Total Commander 9.00 beta 12 (released: 31st August 2016)
[/face]
User avatar
SanskritFritz
Power Member
Power Member
Posts: 3693
Joined: 2003-07-24, 09:25 UTC
Location: Budapest, Hungary

Post by *SanskritFritz »

Same problem here.
I switched to Linux, bye and thanks for all the fish!
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48077
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

I'm requesting the overlay icons as usual. Maybe Tortoise is busy with the commit and doesn't return any icons?
Author of Total Commander
https://www.ghisler.com
User avatar
Captain
Junior Member
Junior Member
Posts: 25
Joined: 2005-11-23, 09:28 UTC
Location: Cape Town, South Africa

Post by *Captain »

Hi

As far as I can tell the commit is over but the overlay icons are not refreshed.

Pete
User avatar
SanskritFritz
Power Member
Power Member
Posts: 3693
Joined: 2003-07-24, 09:25 UTC
Location: Budapest, Hungary

Post by *SanskritFritz »

Does TC not refresh the overlay icons when I press Ctrl-R? Because 1 minute after the commit, the icons are still not shown.
I switched to Linux, bye and thanks for all the fish!
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48077
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

The icons are not cleared on Ctrl+R if nothing else in the directory has changed...
Author of Total Commander
https://www.ghisler.com
tortoisesvn
Junior Member
Junior Member
Posts: 2
Joined: 2007-09-19, 18:22 UTC

Post by *tortoisesvn »

FYI:
TortoiseSVN really does return "no status" (i.e., no overlay) while the working copy is locked or if it takes too long to fetch the status for some other reason.

But the TSVN status cache will send shell notifications as soon as the working copy isn't locked anymore (a working copy gets locked every time an update/commit/... is done until the operation is finished).

SHChangeNotify(SHCNE_UPDATEITEM, SHCNF_PATH | SHCNF_FLUSHNOWAIT, path, NULL);

Maybe you can catch those messages and update the overlays for those paths? The explorer catches those and therefore updates the overlays.
User avatar
SanskritFritz
Power Member
Power Member
Posts: 3693
Joined: 2003-07-24, 09:25 UTC
Location: Budapest, Hungary

Post by *SanskritFritz »

I switched to Linux, bye and thanks for all the fish!
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48077
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

So in principle, TC could react to refresh messages (when auto-refresh options are used by the user). But how to know that the overlay has to be re-read? If TC did this on every refresh message, this would become rather slow...
Author of Total Commander
https://www.ghisler.com
User avatar
SanskritFritz
Power Member
Power Member
Posts: 3693
Joined: 2003-07-24, 09:25 UTC
Location: Budapest, Hungary

Post by *SanskritFritz »

2ghisler(Author)
Could you please reread the post by tortoisesvn? I think he aswers your question right there.
Ghisler wrote:But how to know that the overlay has to be re-read?
tortoisesvn wrote:the TSVN status cache will send shell notifications as soon as the working copy isn't locked anymore (a working copy gets locked every time an update/commit/... is done until the operation is finished).

SHChangeNotify(SHCNE_UPDATEITEM, SHCNF_PATH | SHCNF_FLUSHNOWAIT, path, NULL);

Maybe you can catch those messages and update the overlays for those paths?
I switched to Linux, bye and thanks for all the fish!
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48077
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Well, it's an update message as TC gets when a file changes size during a download. If TC requested a new overlay icon every time a file size changes, this would mean a huge slowdown of the download...
Author of Total Commander
https://www.ghisler.com
User avatar
SanskritFritz
Power Member
Power Member
Posts: 3693
Joined: 2003-07-24, 09:25 UTC
Location: Budapest, Hungary

Post by *SanskritFritz »

Oh, I see! I didnt know that. How come Explorer doesnt have any problems? Interesting... Maybe explorer reacts only once a second to that message? How about this as an idea?
I switched to Linux, bye and thanks for all the fish!
User avatar
SanskritFritz
Power Member
Power Member
Posts: 3693
Joined: 2003-07-24, 09:25 UTC
Location: Budapest, Hungary

Post by *SanskritFritz »

Time for a new request then :-)
I switched to Linux, bye and thanks for all the fish!
User avatar
Lefteous
Power Member
Power Member
Posts: 9535
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

2SanskritFritz
The question is if there is way to know that only the overlay icon changed has to be redrawn. The SHChangeNotify function supports very detailed information but the ReadDirectoryChangesW used by TC only supports a quite limited set of of update information. I guess that the SHChangeNotify call is translated into FILE_ACTION_MODIFIED.


http://msdn2.microsoft.com/en-us/library/aa364391.aspx
Post Reply