https://bz.mercurial-scm.org/show_bug.cgi?id=5484
Bug ID: 5484 Summary: "hg debugupgraderepo" misses some optimizations on already-generaldelta repos Product: Mercurial Version: 4.1 Hardware: All OS: All Status: UNCONFIRMED Severity: feature Priority: wish Component: Mercurial Assignee: bugzi...@mercurial-scm.org Reporter: gabor.stefa...@nng.com CC: mercurial-de...@selenic.com With the PoC fix for bug 5480, if I call "debugupgraderepo" on a fresh generaldelta clone of our heavily-affected main repo, the manifest.d file compresses down to 57MB (down from 1.3GB). If I instead make that fresh clone non-generaldelta (using format.generaldelta=0, format.usegeneraldelta=0), and then run "debugupgraderepo" with the same settings, the manifest.d file goes down to 31MB. Looks like there is some extra optimization done when converting from non-generaldelta to generaldelta, which is not available when upgrading/optimizing an existing generaldelta repo. The debugupgraderepo command line I used was: hg --config extensions.deltafix=C:\nngutilsm\hgext\deltafix.py --config format.aggressivemergedeltas=1 debugupgraderepo --optimize redeltaparent --run (deltafix.py is the PoC fix for bug 5480, packaged as an extension) This same command yields a smaller manifest when upgrading the non-generaldelta clone than when optimizing the already-generaldelta clone. My guess is that this has to do with delta reordering when a non-generaldelta revlog is cloned with format.generaldelta=1. We should be able to do the same for already-generaldelta revlogs either automatically when --optimize redeltaparent is set, or with a new --optimize reorderdeltas option. -- You are receiving this mail because: You are on the CC list for the bug. _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel