Ok it makes sense that I need at least one checkout of all the objects. But still it seems that when I branch and publish via http it wants to upload zillions of objects. For example see the attached webkit-http.txt log. I think there is some bug in the http push transport as if the transport is ssh it's much *much* faster: x61:~/aplix/webkit-test/webkit% git-config remote.origin.url ssh://git.webvm.net/srv/git/webkit x61:~/aplix/webkit-test/webkit% git push origin deleteme Counting objects: 5, done. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 289 bytes, done. Total 3 (delta 2), reused 0 (delta 0) To ssh://git.webvm.net/srv/git/webkit * [new branch] deleteme -> deleteme x61:~/aplix/webkit-test/webkit% I need http:// to work as some of the engineers I work with are behind a "corporate firewall" that doesn't allow ssh://. Crazy, I know.