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: Hacker, petermad, Stefan2, white

tortoisesvn
Junior Member
Junior Member
Posts: 2
Joined: 2007-09-19, 18:22 UTC

Post by *tortoisesvn »

ghisler(Author) wrote: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...
But you have to request the overlays again. If the file size changes, most likely the svn status also changed (e.g., from 'normal' to 'modified'). If you don't re-request the overlay, then you will show the wrong one.

To speed things up, use a small map: move incoming update requests into the map, then read out the map every few seconds and do the real refresh. The map will make sure that duplicate update requests only appear once.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50541
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Yes, TC already does this now. But what if such an update takes more than a second?
Author of Total Commander
https://www.ghisler.com
User avatar
zweistein
Junior Member
Junior Member
Posts: 38
Joined: 2003-08-08, 09:49 UTC
Location: Gent, Belgium

Post by *zweistein »

So is there some trick or how do others cope with this? We had multiple TSVN upgrades and we have TC 7.50 PB2 now - but the overlay icons remain dodgy, whenever you revert, delete, rename, merge or what else in TortoiseSVN dialogs and menus.

Usually it helps to change directory, return to the current directory, and press Ctrl-R. Is it really difficult to have TC flush all it knows and read the directory from scratch?
User avatar
Lefteous
Power Member
Power Member
Posts: 9537
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

I still don't get why TC doesn't listen for the shell notification message.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50541
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

SHChangeNotify is too unspecific, it doesn't tell me that the overlay icons changed. :(
Author of Total Commander
https://www.ghisler.com
User avatar
Lefteous
Power Member
Power Member
Posts: 9537
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

2ghisler(Author)
SHChangeNotify is too unspecific
The SHCNE_UPDATEITEM flag is used by TortoiseSVN to indicate the overlay change.
User avatar
zweistein
Junior Member
Junior Member
Posts: 38
Joined: 2003-08-08, 09:49 UTC
Location: Gent, Belgium

Post by *zweistein »

I didn't really understand the discussion on events. I don't mind if TC ignores the chatter of other processes - definitely if it would slow performance. But I wish TC would listen to me when I tell it to refresh. I gather from Christian's own comments in this thread that Ctrl-R is not a full refresh.
User avatar
zweistein
Junior Member
Junior Member
Posts: 38
Joined: 2003-08-08, 09:49 UTC
Location: Gent, Belgium

Post by *zweistein »

I probably have a setting in my wincmd.in that filters these shell events, because it used to freak me out when I'm renaming a file inline and a refresh cancels my edit
to the same effect. Can't find relevant posts nor settings though.

In any case, though I hardly use it, I know explorer doesn't keep track of everything either. Is there much point in trying, if you're going to press F5 anyway to be sure?

Tortoise's "SVN Show Modification" dialog, which is sort of a file browser, never updates, even if you change stuff through other Tortoise dialogs or menus. I don't care. It has a refresh button that works well.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50541
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Well, when you press refresh and absolutely NOTHING changes (file names, sizes, dates, times, attributes), then TC doesn't see a reason to refresh the list. That's why the refresh button has no effect here...
Author of Total Commander
https://www.ghisler.com
User avatar
zweistein
Junior Member
Junior Member
Posts: 38
Joined: 2003-08-08, 09:49 UTC
Location: Gent, Belgium

Post by *zweistein »

This "absolutely NOTHING" is a little confusing, because some of the things TC displays did change indeed. You probably mean: nothing that TC can quickly query and compare with. But why does TC even look for a reason to refresh - Ctrl-R just told it to? I assume it's because TC calls the same code that refreshes the view when a pane gets focus and there indeed you don't want to needlessly repopulate a list of thousands of files.

Are there other things that TC displays but doesn't refresh unless something else changes? Custom columns? If you have a custom column defined with the dirsizecalc plugin, Ctrl-R updates it, while it's not updated when TC gets focus.

So maybe the trick is to turn off overlay icons and rely on custom columns instead. Unfortunately it's been a long time since I set up the [=shelldetails.SVN Status] column and I can't get it to work again.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50541
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Hmm, I will consider this. Currently neither the icons nor overlays are reloaded because both are slow.
Author of Total Commander
https://www.ghisler.com
User avatar
zweistein
Junior Member
Junior Member
Posts: 38
Joined: 2003-08-08, 09:49 UTC
Location: Gent, Belgium

Post by *zweistein »

I was beginning to doubt the master himself here. Seemed to me now that Ctrl-R in TC 7.50 PB2 updates the icon just as (un)reliably as F5 in Explorer does. You can fire F5/Ctrl-R at will in either browser, but it takes a few seconds for changes to propagate up multiple folders.

More notably, sometimes it take minutes. Sometimes an ordinary file change doesn't seem to be noticed by the parent folder, unless you browse to the file's folder and wake it up. I think it consistently happens if you have the TortoiseSVN setting Unversioned files mark parent folder as modified, and delete the unversioned files. But that's a TortoiseSVN "feature": press F5 in explorer all you want, the only thing that will speed up the propagation is ending the TSVNCache process to have it restarted.

In other words, TSVNCache is the culprit for most of the times I've been swearing at my screen, not TC.

However there is one case where Ctrl-R really doesn't play ball: when TC displays no overlay icons at all for some or all items, which is the title and origin of this thread. Sometimes it happens in normal use, but it's rather better reproducible if you kill the TSCNCache process and press Ctrl-R. At the same moment, Explorer tends to refresh the desktop icons showing it's confused as well, so nothing to reproach TC yet. But once things have settled down, no amount of Ctrl-R brings back the overlay icons. You have to change directories.

No you don't. You can force Ctrl-R to repopulate the pane anyway. First do Show > Only Selected Files, to clear the pane. I don't think one can define a shortcut that combines two actions, but if you override the Ctrl-E key as cm_ShowOnlySelected (in section View), then pressing Ctrl-ER is a breeze. Ctrl-F11 Ctrl-F10 works too - at least if you were in the Show > All Files view.
Last edited by zweistein on 2009-05-18, 15:57 UTC, edited 1 time in total.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50541
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Indeed TC 7.50 beta now clears the overlay settings when you press F2 or Ctrl+R. This means that they are retrieved again when the list redraws.
However there is one case where Ctrl-R really doesn't play ball. Sometimes it happens in normal use, but it's rather better reproducible if you kill the TSCNCache process and press Ctrl-R: TC displays no overlay icons at all for some or all items.
I can confirm that - TC 7.5 doesn't clear the overlay list when they are set to "no overlay" for a file, because I assumed that files not under source control wouldn't suddenly change. I could reproduce the error with no overlay icons only once, so I will enable refresh for such files too in TC 7.5 beta 4.
Author of Total Commander
https://www.ghisler.com
User avatar
ado
Senior Member
Senior Member
Posts: 445
Joined: 2003-02-18, 13:22 UTC
Location: Slovakia, Pezinok

Post by *ado »

that's good news - it really started to bother me (missing overlay icons). In fact it started to happen more often once I upgraded to TortoiseSVN 1.6.x

thank you

ado
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50541
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Unfortunately I couldn't yet find out when this error with no overlay icons occurs. I changed a file and then chose "commit" about 20 times, but I got the problem only once. Do you know a way to get this problem reliably?
Author of Total Commander
https://www.ghisler.com
Post Reply