git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Mercurial v0.4d

From
MMMatt Mackall <mpm@selenic.com>
Date
May 5, 2005, 20:36 UTC
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:
Show 6 quoted lines
> 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.
Previous: Jeff Garzik
Message 4 of 4 in “Mercurial v0.4c”
  1. Matt MackallMay 4, 2005
  2. Mercurial v0.4dMatt Mackall, May 4, 2005
  3. Jeff GarzikMay 5, 2005
  4. Matt MackallMay 5, 2005

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.