Re: Mercurial 0.4e vs git network pull
- From
- Tristan Wibberley <maihem@maihem.org>
- Date
- May 16, 2005, 22:22 UTC
- Message-ID
- <1116282131.6141.8.camel__31554.9111379825$1116283578$gmane$org@localhost.localdomain>
- In-Reply-To
- <20050515124042.GE13024@pasky.ji.cz>
On Sun, 2005-05-15 at 14:40 +0200, Petr Baudis wrote:
Show 21 quoted lines
> 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... > > > > 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 > ...
What about IMAP? You could ask for just the parents for several messages (via a message header), then start asking for message bodies (with the juicy stuff in). You could also ask for a list of the new commits then ask for each of the bodies (several at a time). Not as good as a "Just give me all new data", but an *awful* lot more efficient than HTTP. And very flexible. You just need to map changesets to IMAP messages (if such a mapping can actually make sense :)
Prolly a bit more work though.
-- Tristan Wibberley
The opinions expressed in this message are my own opinions and not those of my employer.