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

Re: [TSVN] major bug in TSVN shell extension

From: SteveKing <steveking_at_gmx.ch>
Date: 2005-08-04 21:30:34 CEST

Norbert Unterberg wrote:
> 2005/8/4, Rainer Müller <mueller_rainer@gmx.de>:
>
>
>>The icons above will be only updated if you go into the folder until the you are
>>at the level of the modified item. The cache does not know that there is a
>>modified item anywhere below that directory. This is the normal behavior since
>>the cache was introduced IIRC.
>
>
> No its not. The folder's icon overlay show the *recursive* status,
> that means it adds up the status of all files no matter how deeply the
> working copy is nested. That's what the cache is all about.

Well, it *is* kinda that way. The problem is that the cache doesn't know
if an app modifies a file deep down the tree. And until the shell asks
for the status of that particular modified file (i.e. if you show the
file in explorer), the cache doesn't check the file again (the status of
that file is in the cache).

So the problem is:
- the cache does not time out anymore
- the cache only checks the filetimes of those files the shell directly
asks the status for (imagine it would do that every time: the cache
would be useless because it would have to check every file every time!)
- an app modifies a file which isn't visible in explorer
- the cache doesn't know that the file has been modified
--> the wrong recursive status is shown.

But: you can run "cleanup". After the Subversion 'cleanup' is done, TSVN
then invalidates the cache down the tree of the selected 'cleanup' item.

The problem only exists when other apps modify files. Operations in TSVN
don't have this problem because TSVN notifies the shell about each
change and also tells the cache directly.

Oh, and it's only a problem if an app modifies a file *without* calling
the ShellNotify() API.

> BTW, the constant refreshing is only in the current nightly, the 1.2.1
> release does not show this problem.

I've reverted the change which caused that problem already. Should be
gone in tomorrows nightly.

Stefan

-- 
        ___
   oo  // \\      "De Chelonian Mobile"
  (_,\/ \_/ \     TortoiseSVN
    \ \_/_\_/>    The coolest Interface to (Sub)Version Control
    /_/   \_\     http://tortoisesvn.tigris.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tortoisesvn.tigris.org
For additional commands, e-mail: dev-help@tortoisesvn.tigris.org
Received on Thu Aug 4 21:30:52 2005

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