[PATCH] Add script to rewrite revlog to workaround lack of parent deltas

Greg Ward greg-hg at gerg.ca
Fri Sep 25 16:15:45 CDT 2009


On Fri, Sep 25, 2009 at 4:43 PM, Greg Ward <greg-hg at gerg.ca> wrote:
> # HG changeset patch
> # User Greg Ward <greg-hg at gerg.ca>
> # Date 1251382892 14400
> # Node ID 2e8a42b7b6d2f6abec4cdcce8060d844941277a0
> # Parent  32ec707991726bd58b9190862ab98f204797eea4
> Add script to rewrite revlog to workaround lack of parent deltas.
> Defaults to rewriting the manifest in the current repository.
>
> Based on a patch to rewrite-log by Benoit Boissinot that I found here:
>  http://article.gmane.org/gmane.comp.version-control.mercurial.general/11908

Until we have parent deltas, this script is *really* important for
people converting large branchy repositories from CVS or Subversion.
Please, please, please, can it go in without more fussing over the
precise details of the "shrink" algorithm?  I mean, it'd be great if I
could shrink my manifest by 100x instead of 95x, but a 95x shrinkage
is still wonderful.  Or, to put it negatively, Mercurial is unusable
with a 4.5 GB manifest, but just fine with a 150 MB manifest.

("Unusable" because clone times would be so long and developers
keeping multiple clones around would be much more difficult.  I don't
think huge manifests affect performance other than clone times.)

BTW, I will happily entertain critiques of naming, style, usability,
correctness, etc.  But can we save performance debates until the
script is actually committed and pushed, so we can meaningfully
compare patches that tweak performance in various ways?

Thanks --

Greg



More information about the Mercurial-devel mailing list