[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Bug - does not show "Locked" icon when file is locked.

From: Stefan Küng <tortoisesvn_at_gmail.com>
Date: Fri, 19 Sep 2008 18:29:25 +0200

Dylan Reynolds wrote:
> Cheers, I got the overlays working. I would not so easily discount the
> refresh problem. This is because all other changes I make - such as
> adding new folders/files, modifying files etc... make instant split
> second changes to the overlays (they automatically refresh). It is only
> the lock and unlock process which does not have proper refresh
> operation. Perhaps this is unavoidable and if so I really don't mind
> hitting F5. I just thought that if everything else happens instantly
> during normal operation then perhaps this should to. Thanks for your
> help. Much appreciated.

I've explained this before, but I can't find it in the archives right
now. So again:
The explorer sometimes ignores refresh notifications. It does this
because some applications sent way too many notifications and would
cause problems for the Explorer. So now, the explorer sometimes ignores
the notifications. While experimenting, I found that the explorer itself
checks the files/folders for modifications it receives a notification.
If it finds a modification (e.g., last-write-time changes), it accepts
the notification and updates the icon overlays. It then rejects the next
notifications for some time after that (because it already updated the
overlays).
But: if it can't find a modification to the files/folder it receives a
refresh notification for, it doesn't update the overlays.

Now: a change in a subversion status does not necessarily mean that the
file has also changed. For example, if you add a file, the file itself
doesn't change but only an entry inside the .svn folder changes to mark
that file as 'added'. In that case, the explorer ignores the
notification and you have to press F5 to force the refresh.

In your case, it's a little bit different: you have the svn:needs-lock
set. When you get a lock, Subversion first removes the 'readonly'
attribute from the file, then changes the entries file inside the .svn
folder to mark the file as being locked. Only after that happens, TSVN
can send the refresh notification to the explorer.
Since the explorer also constantly monitors the current folder for
modifications (you can check that: if you run a batch file which creates
new files, explorer will show them without you having to press F5), it
detects that the readonly attribute was removed and refreshes the view.
If it does that before TSVN sends the notification, then the
notification from TSVN will be ignored because it will be sent within
the refresh-timeout (see my explanation above).

So, yes: for other commands, the explorer refreshes the overlays
correctly most of the time, but for add/lock and some others, it most of
the time does not. But as I said: there's nothing we can do about that
in TSVN.

Stefan

-- 
       ___
  oo  // \\      "De Chelonian Mobile"
 (_,\/ \_/ \     TortoiseSVN
   \ \_/_\_/>    The coolest Interface to (Sub)Version Control
   /_/   \_\     http://tortoisesvn.net

Received on 2008-09-19 18:29:48 CEST

This is an archived mail posted to the TortoiseSVN Users mailing list.