April 8th 2010 06:51 pm
Tro^WMicrobenchmarks!
This blog is far too low in trolling. As a start, everyone knows that git is fast and svn is slow, but I wasn’t aware quite how shocking the difference was.
The test: committing a file that slowly increases in size, and a new file, 200 times.
git: 2 seconds.
darcs: 10 seconds.
bzr: 70 seconds.
svn: 200 seconds.
No comment.
Reproduction steps follow.
bzr 2.0.3 and git 1.5.6.5:
time ($CMD init && for i in $(seq 200); do echo $i >> foo && touch bar$i && $CMD add * &>/dev/null && $CMD commit -m "Whoosh"; done)
darcs (which, admittedly, took about 200 seconds to work out how to commit to) 2.0.2:
time ($CMD init && for i in $(seq 200); do echo $i >> foo && touch bar$i && $CMD add * &>/dev/null && $CMD record -a -Aa -m "Whoosh"; done)
svn 1.5.1:
rm -rf ../repo; svnadmin create ../repo && svn co file:///var/tmp/repo . && time (for i in $(seq 200); do echo $i >> foo && touch bar$i && $CMD add * && $CMD commit -m "Whoosh"; done)
3 Comments »
monk on 08 Apr 2010 at 8:46 pm #
darcs++ for speeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedos.
Faux on 05 May 2010 at 9:00 pm #
hg (oops, so insignificant I forgot it even existed) 1.0.1 (gogo debian stable): 20 seconds on the same machine.
Faux on 10 Jun 2010 at 10:49 pm #
Perforce 2009.2/238357: 8 seconds on the same machine.
Oh god my eyes.
rm -rf db.* depot/ journal && ./p4d & time (EDITOR=true p4 client; for i in $(seq 200); do if [ -f foo ]; then $CMD edit foo; else touch foo; $CMD add foo; fi; echo $i >> foo && touch bar$i && $CMD add bar$i &>/dev/null && $CMD submit -d "Whoosh"; done)