.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