.hg directory has eclipsed 3GB - how to deal with huge manifest?

Matt Mackall mpm at selenic.com
Wed Jan 14 13:30:05 CST 2009


On Wed, 2009-01-14 at 10:25 -0800, bughound wrote:
> 
> Here are the stats:
> 
> hg manifest | wc
>   22111   22111 1332641
> 
> hg log -qm | wc
>   11648   11648  217141
>
> hg id -n
> 25600
> 
> hg heads -q | wc
>       1       1      19
> 
> hg branches | wc
>       1       2      50

For comparison, the Linux kernel repo I have locally:

hg manifest: 25254 files
hg id -n: 120477 commits
hg log -qm: 7331 merges
hg heads: 1
hg branches: 1
manifest size: 444MB

Your average filename length is 60 characters, vs 30 for Linux. 
Your manifest compression ratio is:

(60 + 20) * 22111 * 25600 / 2GB = 22.6x

Whereas Linux is getting:

(30 + 20) * 25254 * 120477 / 444MB = 342x

(Ideally these numbers get well up above 1000x, the Linux kernel is
rather a bad case here. We have long-term plans for improving this.)

What stands out is your percentage of merges (45% vs 6%). That's quite
high: just about every other commit is a merge.

This means your manifest probably has lots of interleaving. But we
should probably take a closer look at it - please send along a copy of
00manifest.i to me and Benoit (cc:ed).

-- 
http://selenic.com : development and support for Mercurial and Linux




More information about the Mercurial mailing list