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

[TSVN] Excessive directory wandering - a more complete story

From: Will Dean <svn_at_indcomp.co.uk>
Date: 2004-10-28 11:44:06 CEST

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.

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

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.

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 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...

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?

Cheers,

Will

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.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tortoisesvn.tigris.org
For additional commands, e-mail: dev-help@tortoisesvn.tigris.org
Received on Thu Oct 28 12:47:42 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.