Skip to content

Instantly share code, notes, and snippets.

@rtomayko
Created February 7, 2011 05:11
Show Gist options
  • Save rtomayko/814024 to your computer and use it in GitHub Desktop.
Save rtomayko/814024 to your computer and use it in GitHub Desktop.
sample of github git fetch times by protocol
$ uname -a && git --version
Darwin asha.local 10.6.0 Darwin Kernel Version 10.6.0: Wed Nov 10 18:13:17 PST 2010; root:xnu-1504.9.26~3/RELEASE_I386 i386
git version 1.7.2.1
$ git clone git://github.com/github/gitignore.git
$ cd gitignore
$ # fetching over ssh
$ yes | head -5 | (while read ; do time git fetch [email protected]:github/gitignore.git; done) 2>&1 | grep real
real 0m2.103s
real 0m1.990s
real 0m2.074s
real 0m2.069s
real 0m1.952s
$ # fetching over https
$ yes | head -5 | (while read ; do time git fetch https://github.com/github/gitignore.git; done) 2>&1 | grep real
real 0m0.744s
real 0m0.797s
real 0m0.798s
real 0m0.743s
real 0m0.790s
$ # fetching over git protocol
$ yes | head -5 | (while read ; do time git fetch git://github.com/github/gitignore.git; done) 2>&1 | grep real
real 0m0.322s
real 0m0.328s
real 0m0.364s
real 0m0.352s
real 0m0.319s
# This is an interesting measure of protocol and auth code overhead for different fetch methods
# as implemented at GitHub. Note that all protocols eventually execute identical git-upload-pack [1]
# processes so this is not a measure of core git performance in any way.
# [1] <http://www.kernel.org/pub/software/scm/git/docs/git-upload-pack.html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment