[darcs-users] darcs2 much slower than darcs1 on big repo
Max Battcher
me at worldmaker.net
Fri Aug 15 07:00:23 UTC 2008
Alan Bram wrote:
> It appears that the old repo format works a little faster than the
> new, in my case. Does that make sense?
Yes it does, especially for darcs whatsnew... with old repo format to
find the pristine copy of a file it's quite simple:
filename.txt -> _darcs/pristine/filename.txt
It simply looks for the same file in a different directory, which will
always be fast. Hashed format does this instead:
filename.txt --hashing algorithm--> _darcs/pristine.hashed/HEX_GIBBERISH
This is more robust (a stupid script, and/or ignorant developer, adding
a header to all .txt files won't accidentally edit the pristine cache
and cause corruption) and more secure (even if said stupid script is
using mime-type guessing and still manages to edit the HEX_GIBBERISH
named file like 00001-cafedeadbeef darcs nows thanks to the hashed
signature of the file knows that the file is corrupted and can
auto-repair before causing more serious problems in the repository such
as spurious darcs whatsnew output) and more sharable (because the hashes
are based on the state of the file, repositories with files in the same
pristine state can easily share the exact same hashed pristine file).
The trade-off for all of these benefits is that darcs no longer can
simply check if two files named the same thing in different directories
have different last modification dates, it has to do a little bit more
computation. (Not to say that the way things are currently done is the
most performant, just that its obvious darcs is doing a bit more work
and for good reason, so you can expect some performance difference, but
I'm sure we'd all prefer that difference to be as small as possible.)
Is that a decent explanation? (Or is it still too technical?) I've
been slowly trying to get more stuff like this into the darcs manual
itself, so feedback is more than welcome... I find that with this stuff
it helps me to write a couple of times in different ways to find the
right approach.
Anyway, I personally have had more than enough experience of accidental
pristine corruption and I think the trade-off is worth it.
--
--Max Battcher--
http://www.worldmaker.ne/
More information about the darcs-users
mailing list