Analysis of issue 1327

Dirkjan Ochtman dirkjan at ochtman.nl
Fri Nov 6 10:47:55 CST 2009


On Fri, Nov 6, 2009 at 17:38, Greg Ward <greg-hg at gerg.ca> wrote:
>> 2.1.2. THE FUTURE: OTHER FORMATS
>>
>> This is a topic of much debate, I am sure, but I personally think that
>> we should, on the long term, move towards a solution a bit like this:
>>
>> - A revlog containing the changelog and possibly manifest. No real
>>  reason for the two levels, as I see it.
>
> Interesting idea, but it shouldn't be done until we have parent
> deltas.  Rationale: currently, lack of parent deltas can be worked
> around by reordering the manifest file.  (In our case,
> shrink-revlog.py shrinks the manifest from ~3 GB to ~50 MB, which
> frankly makes the difference between choosing Mercurial or choosing
> something else.)  But you can't reorder the changelog.  So merging
> manifest + changelog means giant manifests can only be fixed by
> implementing parent deltas.

Even then, merging changelog and manifest is major performance PITA.
Many operations in hg are quick because you only have to run through
the changelog, without unpacking the manifests. IIRC unpacking
manifests is one of the biggest pains in larger (O(files))
repositories, so this will really hurt them. (Think of simple things
like hg log.)

Cheers,

Dirkjan



More information about the Mercurial-devel mailing list