I'm very much looking forward to the performance (and other)
improvements wc-ng will bring us. But there's more to svn performance
than wc stuff :-). In our company, "svn annotate/blame/praise" is a
known offender (people who attended subconf 2009 may remember me as
the guy who complained about the annotate of a 2Mb file with 6000 revs
taking over 4 hours).
So, in the name of "make it faster, then make it faster again", and
feeling that maybe it's time to scratch one of my own itches, I'd like
to take a stab at this myself. I have no idea whether I'm up to this
task (I am a total newbie at svn development), but I can try. Until
now I have just analyzed some parts of the source code. I have setup a
build environment on my machine (on windows), and have been able to
run it from inside a debugger (Visual C 2008 Express Edition), setting
breakpoints, seeing what happens, ...
I am specifically looking at the suggestion that Julian made in the
following comment in the issue tracker
My idea for client-side improvement:
The client, while receiving binary diffs for successive revisions, could
calculate a byte-wise annotation of the file. (It probably would not have to
reconstruct full texts to do that.) Then, at the end, it could split the
byte-wise annotation at the file's line boundaries and report the highest
revision number within each line.
I might also take a look at Bert's suggestion in
(reversing the algorithm).
If anyone could help me get started with this (more specifics about
the above idea(s), or other ideas that could give a significant boost;
any pointers, parts of the code where I could get started, ...), that
would be very much appreciated.
Received on 2010-03-21 22:09:13 CET