I've seen a ton of statistics about how git is faster than svn, but most of those statistics are only comparing git's local operations to SVN's equivalent remote operation. Dos anyone have links to hard data comparing git's speed with remote operations to SVN's speed with remote operations?
-
Be sure to read the fine print on anything you find. Both Subversion and Git have multiple different network transports, each with vastly different performance characteristics. By limiting your comparison choices, you could easily demonstrate that either one is the "fastest". – Greg Hewgill Feb 18 '10 at 17:44
-
@Greg: I figured so much - I'm primarily interested in general overall speedups people have found when working in large-scale projects. – Mike Feb 18 '10 at 17:45
-
1Well, roughly speaking, "it depends". An initial `git pull` is almost certainly going to be much slower than an initial `svn checkout`, but those two operations aren't really directly comparable. A `git commit; git push` of one commit should be roughly equivalent to a `svn commit`. I'd suggest that that would be a useful thing to try to compare benchmarks for. – pioto Feb 18 '10 at 17:45
2 Answers
As mentioned in the comments, the remote operations involved with Git are quite different than with Subversion:
- git will initially get all the history of a repo, and then can work autonomously.
- Subversion will only get the most recent history, and request more information to the server when needed.
But do not forget that Git has been built around one major feature: being able to apply dozen of patches (and/or merges) fast.
That is the one operation which should be measured between the two tools, and one where Git has a sizable advantage, the comparison and merge of different versions of a file being a pure local operation, as illustrated in this Git Subversion comparison page (disclaimer: written in the Git wiki)
Git is extremely fast. Since all operations (except for push and fetch) are local there is no network latency involved to:
That means compare only remote operations will greatly restrict the features being compared...

- 1,262,500
- 529
- 4,410
- 5,250
-
Note that while "svn diff" and "svn status" does not need network and is done locally (thanks to Subversion keeping copy of pristine sources `.svn`), "svn diff -rN" and "svn log" are done over the network, contrary to "git diff
" and "git log". – Jakub Narębski Feb 18 '10 at 20:17
Take a look at references (original sources) mentioned on http://git.wiki.kernel.org/index.php/GitBenchmarks.
Some of them did include comparison of speed with Subversion, if I remember it correctly.

- 309,089
- 65
- 217
- 230