generaldelta gains

Matt Mackall mpm at selenic.com
Mon May 9 10:57:47 CDT 2011


On Mon, 2011-05-09 at 17:46 +0200, Antoine Pitrou wrote:
> On Thu, 5 May 2011 20:53:21 +0200
> Sune Foldager <cryo at cyanite.org> wrote:
> > On Thu, May 05, 2011 at 08:42:19 +0200, Antoine Pitrou wrote:
> > >On Thu, 5 May 2011 20:27:40 +0200
> > >Benoit Boissinot <bboissin at gmail.com> wrote:
> > >> >
> > >> > Out of curiousity: why only the first parent and not both of them?
> > >> > It seems to make storage efficiency depend on tiny details of people's
> > >> > workflow ("which way" they do their merges), doesn't it?
> > >>
> > >> The storage supports it, but last time I checked it was quite
> > >> expensive to try all combinations.
> > >
> > >Well, trying 3 revisions instead of 2 is only a 50% increase, isn't
> > >it? :)
> > >
> > >The reason why I'm interested is that I think it would benefit CPython
> > >a lot. Yesterday I experimented with parentdelta, and it would shrink
> > >our current repo from 260MB to 180MB (although the original conversion
> > >result, two months ago, had *already* been reordered using the
> > >"shrink-revlog" script).
> > >
> > >The logical reason is that most of our changes (bug fixes) are actually
> > >done in several branches in lockstep (fix bug in 3.1, merge into 3.2,
> > >merge into default), so using N-1 as a base for revision N is
> > >suboptimal.
> > 
> > Well, we could easily make this configurable in some way, so you could
> > either enable p2 or maybe something even more general... the sky will
> > be the limit :p.
> 
> Ok, I've now tested generaldelta and it shrinks the CPython repo from
> 270MB to 197MB.
> Why is it disabled by default?

Because it's only half-done and turning it on would greatly regress
performance of push/pull.

-- 
Mathematics is the supreme nostalgia of our time.




More information about the Mercurial-devel mailing list