Subject: Re: Wine + GIT

From: Andreas Ericsson <[email-masked]>
Date: Wed, 07 Dec 2005 00:27:55 +0100

Nick Hengeveld wrote:
> On Mon, Dec 05, 2005 at 09:18:54PM -0500, Jeff Garzik wrote:
> 
> 
>>One other comment:  http:// is the slowest of all three transports. 
>>git:// (git daemon) is preferred, followed by rsync.
>>
>>http:// takes forever, comparatively.
> 
> 
> Has that been the general git user experience?

It certainly is for me, and I know most of my colleagues think so too.

>  While there are
> certainly disadvantages to the http transport, I didn't think that
> performance was one of them.
> 
> For comparison, I ran some clones this morning/afternoon with the
> following results:
> 

When you clone you need to get all the objects. If the objects aren't 
packed on the remote end (which is usually the case), the git protocol 
will pack them for you which takes quite some time for a large repo and 
puts the server under considerable stress.

When you pull incrementally the native git protocol does some figuring 
out of the minimum set of packs it needs to send you.

> 
> Clone of kernel.org/pub/scm/git/git.git
> 
> http
> real    0m24.204s       real    0m25.750s       real    0m24.094s
> user    0m5.870s        user    0m5.530s        user    0m5.350s
> sys     0m0.660s        sys     0m0.710s        sys     0m0.600s
> 
> rsync
> real    1m3.952s        real    1m3.417s        real    1m4.360s
> user    0m0.090s        user    0m0.130s        user    0m0.120s
> sys     0m0.210s        sys     0m0.230s        sys     0m0.210s
> 
> git
> real    0m54.715s       real    0m55.928s       real    0m56.411s
> user    0m0.980s        user    0m0.980s        user    0m1.040s
> sys     0m0.220s        sys     0m0.140s        sys     0m0.160s
> 

In general, rsync:// should be the fastest protocol to clone over. Why 
you got the numbers listed above I have no idea, but I'm guessing the 
rsync daemon was under quite a bit of stress. http could in that case be 
faster since apache handles multiple clients better than rsync, but only 
if you're on a very fast line with low round trip time to the server as 
it needs to do a lot of downloading and checking to see where it's at 
and what it needs.

You may also want to take notice of the fact that the git-daemon can use 
cached pack-files, in which case it doesn't have to do so much manual 
packing. If cache-files are present, the git protocol *should* be the 
fastest to clone over as well.

-- 
Andreas Ericsson                   [email-masked]
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231