martinvonz created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers.
REVISION SUMMARY We'll need to walk the manifest revlogs also to figure out which manifests have linkrevs out of order (for fixing the bug shown in the previous patch). By the way, perhaps it would be more efficient in many cases to find only the relevant directory manifest revlogs based on the files instead of walking the entire store, but that can be changed later. REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D6794 AFFECTED FILES mercurial/repair.py CHANGE DETAILS diff --git a/mercurial/repair.py b/mercurial/repair.py --- a/mercurial/repair.py +++ b/mercurial/repair.py @@ -364,11 +364,11 @@ callback.addnodes(nodelist) def stripmanifest(repo, striprev, tr, files): - revlog = repo.manifestlog.getstorage(b'') - revlog.strip(striprev, tr) - striptrees(repo, tr, striprev, files) + for revlog in manifestrevlogs(repo): + revlog.strip(striprev, tr) -def striptrees(repo, tr, striprev, files): +def manifestrevlogs(repo): + yield repo.manifestlog.getstorage(b'') if 'treemanifest' in repo.requirements: # This logic is safe if treemanifest isn't enabled, but also # pointless, so we skip it if treemanifest isn't enabled. @@ -376,7 +376,7 @@ if (unencoded.startswith('meta/') and unencoded.endswith('00manifest.i')): dir = unencoded[5:-12] - repo.manifestlog.getstorage(dir).strip(striprev, tr) + yield repo.manifestlog.getstorage(dir) def rebuildfncache(ui, repo): """Rebuilds the fncache file from repo history. To: martinvonz, #hg-reviewers Cc: mercurial-devel _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel