Re: Mercurial 0.4e vs git network pull
- From
Petr Baudis <pasky@ucw.cz>
- Date
- May 15, 2005, 12:40 UTC
- Message-ID
- <20050515124042.GE13024@pasky.ji.cz>
- In-Reply-To
- <200505151122.j4FBMJa01073@adam.yggdrasil.com>
Dear diary, on Sun, May 15, 2005 at 01:22:19PM CEST, I got a letter where "Adam J. Richter" <adam@yggdrasil.com> told me that...
Show 19 quoted lines
> On Sun, 15 May 2005 10:54:05 +0200, Petr Baudis wrote: > >Dear diary, on Thu, May 12, 2005 at 10:57:35PM CEST, I got a letter > >where Matt Mackall <mpm@selenic.com> told me that... > >> Does this need an HTTP request (and round trip) per object? It appears > >> to. That's 2200 requests/round trips for my 800 patch benchmark. > > >Yes it does. On the other side, it needs no server-side CGI. But I guess > >it should be pretty easy to write some kind of server-side CGI streamer, > >and it would then easily take just a single HTTP request (telling the > >server the commit ID and receiving back all the objects). > > 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).
> Being able to do without a server side CGI script might > encourage deployment a bit more, both for security reasons and > effort of deployment.
You could still use it without the server side CGI script as it is now, just without the speedups.
-- Petr "Pasky" Baudis Stuff: http://pasky.or.cz/ C++: an octopus made by nailing extra legs onto a dog. -- Steve Taylor