From: Matt Mackall Date: Thu, 05 May 2005 20:36:58 GMT Subject: Re: Mercurial v0.4d Message-ID: <20050505203658.GG22038@waste.org> In-Reply-To: <427A6E3F.5090904@pobox.com> On Thu, May 05, 2005 at 03:04:31PM -0400, Jeff Garzik wrote: > Matt Mackall wrote: > >The web protocol is painfully slow, mostly because it makes an http > >round trip per file revision to pull. I'm about to start working on a > >replacement that minimizes round trips. > > Can you make it do HTTP 1.1 pipelining? Yes, a zsync-like protocol ought to be doable. But you'll still potentially be doing 16k requests to pull something the size of the kernel, which isn't very friendly to a web server. So I'm working on a stand-alone or possibly CGI-based replacement. My goal is to do something like this: client server I last saw change N from you W, X, Y, and Z are newer here Send me X, Y, and Z relative to N Here you go, deltas from N to X to Y to Z, sorted by file So not only can we be efficient in number of round trips and data transferred, we can reduce seeks by applying all per-file changes together. We can also usually avoid decompress/recompress and patch/diff because both ends will end up storing the same delta. -- Mathematics is the supreme nostalgia of our time.