Something changed shrink-revlog for the worse

Dirkjan Ochtman dirkjan at ochtman.nl
Thu Jan 7 07:40:36 CST 2010


On Thu, Jan 7, 2010 at 11:29, Dirkjan Ochtman <dirkjan at ochtman.nl> wrote:
> Best idea so far: with a single unshrunk manifest file, run through
> crew with bisect and see where it starts failing?

I tried to verify your results. First, I checked two version of the
shrink-script. There was a change from Benoit early in December in the
shrink script (you didn't mention it anywhere). I think it's not in
1.4.x, though:

changeset:   10009:69dca8574a6a
user:        Benoit Boissinot <benoit.boissinot at ens-lyon.org>
date:        Fri Dec 04 15:36:13 2009 +0100
summary:     shrink-revlog: improve performance: use changegroup
instead of revisions

I tried all of these on an old conversion of python to hg I had lying
around. It goes from 872.2 MiB to 14.8 MiB, so it may not be quite as
branchy as your work repo, but at least there's significant reduction.
I didn't check time running, though I did get the impression the new
version was a little snappier.

After verifying that the pre-69dca8 version and the post-69dca8
version gave the same on-disk improvement, I tried running the latest
version of the script against three versions of Mercurial. I inserted
a sys.path insertion at the top of the shrink script and print
changegroup.__file__ to be sure it got the right path. I had three
steps between each run: revert manifests to the old versions (simply
moving .old back), updating my crew clone with up -C, then make local
in my crew clone.

Unfortunately, I was unable to reproduce your results: each run gave
me exactly the same resulting repo size.

Cheers,

Dirkjan


More information about the Mercurial-devel mailing list