From: Petr Baudis Date: Sun, 15 May 2005 14:23:08 GMT Subject: Re: Mercurial 0.4e vs git network pull Message-ID: <20050515142307.GF13024@pasky.ji.cz> In-Reply-To: <200505151152.j4FBqoW01239@adam.yggdrasil.com> Dear diary, on Sun, May 15, 2005 at 01:52:50PM CEST, I got a letter where "Adam J. Richter" told me that... > On Sun, 15 May 2005 14:40:42 +0200, Petr Baudis wrote: > >Dear diary, on Sun, May 15, 2005 at 01:22:19PM CEST, I got a letter > >where "Adam J. Richter" told me that... > [...] > >> I don't understand what was wrong with Jeff Garzik's previous > >> suggestion of using http/1.1 pipelining to coalesce the round trips. > >> If you're worried about queuing too many http/1.1 requests, the client > >> could adopt a policy of not having more than a certain number of > >> requests outstanding or perhaps even making a new http connection > >> after a certain number of requests to avoid starving other clients > >> when the number of clients doing one of these transfers exceeds the > >> number of threads that the http server uses. > > >The problem is that to fetch a revision tree, you have to > > > send request for commit A > > receive commit A > > look at commit A for list of its parents > > send request for the parents > > receive the parents > > look inside for list of its parents > > ... > > >(and same for the trees). > > Don't you usually have a list of many files for which you > want to retrieve this information? I'd imagine that would usually > suffice to fill the pipeline. That might be true for the trees, but not for the commit lists. Most commits have a single parent, except merges, which are however extremely rare with more than two parents too. -- Petr "Pasky" Baudis Stuff: http://pasky.or.cz/ C++: an octopus made by nailing extra legs onto a dog. -- Steve Taylor