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

Re: [TSVN] Excessive directory wandering - a more complete story

From: SteveKing <stefankueng_at_gmail.com>
Date: 2004-10-28 11:58:42 CEST

On Thu, 28 Oct 2004 10:44:06 +0100, Will Dean <svn@indcomp.co.uk> wrote:
>
> Guys,
>
> I have looked into this issue of "svn status" (and hence all TSVN/Explorer
> browsing of WC) being overzealous.
>
> I built the command line SVN, and played around with a debugger to see what
> it was doing. It turns out that this is a 'known problem', although
> dismissed in a comment in the usual glib way which the svn devs talk about
> performance problems. (Probably why they have so many...)

;)

> Anyway, it *is* the case that kind of path which gets passed to
> svn_client_status affects the amount of WC directory locking which it
> does. A full path, which is what I believe TSVN passes causes SVN to lock
> vast swathes of the working copy.

Yes, TSVN always uses full paths.

> This is documented in a comment around line 130 of status.c.

If it wouldn't cause such problems and slowdowns in TSVN, that comment
could almost seem funny :(

> My mind rather boggles at the process of trying to patch SVN, and the five
> year wait which would happen before the SVN team deigned to put the patch
> into a release.

Now you're not fair. Five years is way too much. I guess about one or
two years ;)

> It occurs to me that a possible (very simple) workaround for TSVN would be
> to pass "" as the path argument to svn_client_status in SVNStatus.cpp,
> wrapping the call with something like this:
>
> {
> PreserveChdir preserveChdir;
> SetCurrentDirectory(path);
>
> ... existing call to svn_client_status, but with path = "" ...
>
> }
>
> This would then be exactly like doing
>
> "svn -N status" in the appropriate directory.

I can try that. Not sure if it'll work though.

> I confess that I had doubts about the wisdom of doing a CWD on the explorer
> process, but the presence of PreserveChdir leads me to assume that you've
> already had this debate and settled it...

Well, some API's change the CWD without that being documented! At
least some API's on NT4 do that. Not sure about XP...

> I have not *quite* been able to try this, because I'm just struggling with
> the linking of TortoiseShell.
>
> Would you be able to try it,please, Stefan?

I'll try it this evening at home. Can't really test the shell part
here at work...

> PS: Is there any reason why pre-compiled headers aren't used in the TSVN
> build? They speed it up a *heap*, and I know some of you struggle with the
> build time as it currently is.

We _do_ use precompiled headers. Just not for the shell part ;)

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 Oct 28 13:07:41 2004

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.