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

Sune Foldager cryo at cyanite.org
Thu May 5 13:38:27 CDT 2011


On Thu, May 05, 2011 at 08:27:40 +0200, Benoit Boissinot wrote:
>On Thu, May 5, 2011 at 8:23 PM, Antoine Pitrou <solipsis at pitrou.net> wrote:
>> On Thu, 05 May 2011 18:27:59 +0200
>> Sune Foldager <cryo at cyanite.org> wrote:
>>> # HG changeset patch
>>> # User Sune Foldager <cryo at cyanite.org>
>>> # Date 1304611540 -7200
>>> # Node ID 51e850f8e2901a032e5a13f0ea1ea140570ae8b4
>>> # Parent  ff44313cbdf6f92626f2bb8cc1e0b790be52975b
>>> revlog: support writing generaldelta revlogs
>>>
>>> When adding revisions, and building a delta chain, deltas are computed against
>>> the previous revision as well as the first parent. The smaller one is then
>>> stored in the revlog. This is similar to the now removed parentdelta feature.
>>
>> 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.
>We could also use heuristics (number of changesets to the common ancestor, etc.)

And the best thing is that we can change it at any time, without breaking
compatibility :)


More information about the Mercurial-devel mailing list