[PATCH] treemanifests: actually strip directory manifests

Yuya Nishihara yuya at tcha.org
Sun Jul 3 02:26:30 EDT 2016


On Thu, 30 Jun 2016 13:26:50 -0700, Martin von Zweigbergk via Mercurial-devel wrote:
> # HG changeset patch
> # User Martin von Zweigbergk <martinvonz at google.com>
> # Date 1467317179 25200
> #      Thu Jun 30 13:06:19 2016 -0700
> # Node ID 9e7843cbb87e1bd6f6a375fadfb431b71ba758f4
> # Parent  785cadec209101e1894d534d0a2d05f16c0a5c52
> treemanifests: actually strip directory manifests
> 
> Stripping has only partly worked since 7cbb3a01fa38 (repair: use cg3
> for treemanifests, 2016-01-19): the bundle seems to have been created
> correctly, but revlog entries in subdirectory revlogs were not
> stripped. This meant that e.g. "hg verify" would fail after stripping
> in a tree manifest repo.
> 
> To find the revisions to strip, we simply iterate over all directories
> in the repo (included in store.datafiles()). This is inefficient for
> stripping few commits, but efficient for stripping many commits. To
> optimize for stripping few commits, we could instead walk the tree
> from the root and find modified subdirectories, just like we do in the
> changegroup code. I'm leaving that for another day.

Sounds good, queued, thanks.


More information about the Mercurial-devel mailing list