tortoise caching and crawling

John Arbash Meinel john at arbash-meinel.com
Mon Apr 14 01:57:38 BST 2008


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Mark Hammond wrote:
| I've been looking in detail at the TortoiseSvn "cache" process (TSVNCache),
| as described briefly in the document I've recently been sending to the list.
| We are planning to build something similar for TortoiseBzr, and although we
| plan a custom RPC mechanism, the rest of the program should be suitable for
| use in a future, general-purpose RPC mechanism as mooted at the recent
| London Sprint and on this list.  Therefore, the stuff discussed here is
| relevant outside of the narrow confines of Tortoise (and indeed, most of
| what TSVNCache does isn't actually subversion specific.)
|
| I've included details of what TSVNCache does below, but in summary, much of
| the complexity relates to the ability of TSVN to show the recursive status
| of a folder without blocking while that folder is walked (ie, walk the
| folders in background).  This requires TSVNCache to have a "crawler", which
| may occasionally walk very large trees, and to cache the status of these
| trees, even though many of the items are never actually viewed.
|
| In light of this, and that some people previously indicated that the
| crawling of sub-trees is a "mis-feature", I thought I'd solicit some
| thoughts.  Is crawling a problem in itself, or only when it chews too many
| resources/takes too long?  Is this something most people would disable if
| given that option?  In other words, is this something we want to have, and
| is it worth the complexity?  Personally, I think having the recursive status
| for folders *is* valuable, but I may be in the minority (and will happily
| avoid that complexity if I possibly can ;)
|
| FYI, I'm taking 2 weeks holiday starting tomorrow evening - but I'll catch
| up with any replies that I miss when I return.
|
| Cheers,
|
| Mark

Having used TortoiseSVN, I find that the recursive directory status is quite
useful. As it tells you at the top level that something needs to be committed.
This is mostly important because the "view" is a plain explorer window which is
not recursive. So it is unclear if you need to look closer without it recursing
for you.

I think the only real problem is the performance aspect of it. It seems like you
could do all of this with a single worker thread that has a queue of what
directories it wants to have information of. It means that quickly going to one
directory and then going to a different one may cause the second directory to
take a long time (because you are recursing the first), but you would probably
not thrash quite as much.

John
=:->

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFIAqwBJdeBCYSNAAMRAvX6AJ9m4TZS4mhTSItwX380vImwtk/ycACffJg0
b29CHGNNJ69taE7ndwUhFxo=
=OHIC
-----END PGP SIGNATURE-----



More information about the bazaar mailing list