Using old-http and rsync for pull/push.

Rob Browning rlb at
Thu Sep 29 13:48:30 CDT 2005

Matt Mackall <mpm at> writes:

> First let's take a look at how old-http works. It basically treats the
> remote repo as local files that it can inspect at its leisure. For a
> fresh pull of Mercurial, it will generate over 1800 http requests. If
> the per-request overhead is just .5k, that alone is more data than is
> in a bundle (a full Mercurial bundle is .8M). This can be improved a
> fair amount, but it's still not going to be fast.
> A subsequent pull with _no changes_ must grab the whole changelog
> index (103k) to check for new changesets. Quite a bit can fit in a
> bundle that size.
> I think a single bundle makes sense for distributing whole projects
> where the project is small. For larger projects, you can have two:
> project-full.hg and project-this-week.hg.

Thanks, that overview actually helps quite a bit.

Oh, and presuming that it's true, it might be worthwhile to explicitly
mention in the manpage that "hg unbundle" will ignore any changes
already applied.

Rob Browning
rlb and; previously
GPG starting 2002-11-03 = 14DD 432F AE39 534D B592  F9A0 25C8 D377 8C7E 73A4

More information about the Mercurial mailing list