Fast listing of SVN repository with svn-crawler

I already described an approach to list an SVN repository quickly. Now I’ve published the code as a separate tool:

https://sourceforge.net/projects/fastsvncrawler/

To compile you need libsvn-dev, make, and cmake packages:

$ sudo aptitude install libsvn-dev make cmake

Then perform standard steps to compile CMake-based project:

$ mkdir build
$ cd build
$ cmake ..
$ make

To show all files for an URL run

$ ./svn-crawler <URL>

As expected this tool is much faster than official native SVN. Here’re some benchmarks:

$ svn --version
svn, version 1.6.17 (r1128011)
   compiled Nov 20 2011, 01:10:33
...

For Subversion repository itself:

$ time svn ls --depth infinity http://svn.apache.org/repos/asf/subversion/trunk
...

real    1m17.487s
user    0m0.476s
sys     0m0.112s

$ time ./svn-crawler http://svn.apache.org/repos/asf/subversion/trunk
...
real    0m3.836s
user    0m0.184s
sys     0m0.060s
Time spent to list Subversion repository

Time spent to list Subversion repository

For SVNKit repository:

$ time svn ls --depth infinity http://svn.svnkit.com/repos/svnkit
...
real    2m12.392s
user    0m0.448s
sys     0m0.064s

$ time ./svn-crawler http://svn.svnkit.com/repos/svnkit/trunk
...
real    0m18.712s
user    0m0.184s
sys     0m0.028s
Time spent to list SVNKit repository

Time spent to list SVNKit repository


For SQLJet repository:

$ time svn ls --depth infinity http://svn.sqljet.com/repos/sqljet/branches/1.0.x
...
real    1m23.513s
user    0m0.276s
sys     0m0.052s

$ time ./svn-crawler http://svn.sqljet.com/repos/sqljet/branches/1.0.x
...
real    0m5.916s
user    0m0.100s
sys     0m0.028s

Time spent to list SQLJet repository

Time spent to list SQLJet repository

Comments are closed.