[PATCH 4 of 4] revlog: support writing generaldelta revlogs

Sune Foldager cryo at cyanite.org
Thu May 5 13:53:21 CDT 2011


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.

Sune


More information about the Mercurial-devel mailing list