Mercurial Mini Sprint at Pycon 2014

Tim Delaney timothy.c.delaney at gmail.com
Tue Mar 18 15:37:13 CDT 2014


On 19 March 2014 04:18, Matt Mackall <mpm at selenic.com> wrote:

> On Tue, 2014-03-18 at 00:57 +0100, Antoine Pitrou wrote:
> > On Mon, 17 Mar 2014 15:13:17 -0400
> > Long Vu <long.vu at intelerad.com> wrote:
> > >
> > > There's one issue I'd like to tackle: our 00manifest.d file is getting
> > > big and growing fast.
> > >
> > > I've read about generaldeltas format.  I wonder if that's stable
> > > enough for production use and if there's any pending bugs I am more
> > > than willing to help fixing them.
> >
> > We've been using generaldelta for a long time on the Python repo:
> > http://hg.python.org/cpython
> > (and we haven't had any problems, AFAIR)
>
> The primary issue with generaldelta continues to be its non-support in
> the wire protocol. This means that if turning on generaldelta saves 2x
> disk space.. you're still sending the original, large format over the
> wire. Secondly... the server has to recompute that original format
> rather than just stream the deltas on disk. So it's more CPU-intensive
> on the server side for clone/pull as well.
>

It can still be really worth it. The repo I have to work with (~60000 SVN
commits converted using hgsubversion) has a manifest about 1.5GB in size
without generaldelta. In practice this was slowing everything down (e.g.
TortoiseHG was almost completely unusable).

By using generaldelta (and an intermediate repo which actually pulls from
SVN and pushes back the the central repo to properly get the reordering
benefits) my central repo manifest reduced to a current size of about 87MB.

That's approximately 5% of the original size. I'm willing to put up with a
bit more CPU usage for a manifest that's actually usable.

Tim Delaney
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://selenic.com/pipermail/mercurial-devel/attachments/20140319/eba630cb/attachment.html>


More information about the Mercurial-devel mailing list