Performance improvements in the upcoming Subversion 1.7 release

I just tried out a build from the Subversion 1.7.x branch which appears to come close to a final release. Instead of creating .svn directories everywhere, the new working copy layout switches to a central storage using SQLite. You will only see a single .svn at the top most directory of the working copy. Details are outlined in the preliminary release notes.

The following is a totally inaccurate benchmark, but I want to share some numbers. The MacPorts repository used here contains lots of directories with only a few files in each, often only a single file. This makes operations walking the .svn directories in the tree very expensive.

Listing status of files:

~/src/macports/trunk-svn $ time svn st

real	3m39.347s
user	0m1.450s
sys	0m5.900s

~/src/macports/trunk-svn17 $ time svn17 st

real	0m23.788s
user	0m1.914s
sys	0m2.297s

Update without changes (locking the whole working copy against concurrent access):

~/src/macports/trunk-svn $ time svn up
At revision 83750.
real	2m32.855s
user	0m1.202s
sys	0m5.060s

~/src/macports/trunk-svn17 $ time svn17 up
Updating '.':
At revision 83750.

real	0m5.362s
user	0m1.793s
sys	0m1.166s

Impressive results!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.