Mercurial > public > mercurial-scm > hg-stable
diff mercurial/revlogutils/rewrite.py @ 47812:855463b5fe49 stable
debugcommands: add a `--paranoid` option to `debug-repair-issue-6528`
See justification inline.
Differential Revision: https://phab.mercurial-scm.org/D11263
author | Rapha?l Gom?s <rgomes@octobus.net> |
---|---|
date | Fri, 06 Aug 2021 12:10:36 +0200 |
parents | 32e21ac3adb1 |
children | 5b046c2e3000 |
line wrap: on
line diff
--- a/mercurial/revlogutils/rewrite.py Thu Aug 05 17:00:03 2021 +0200 +++ b/mercurial/revlogutils/rewrite.py Fri Aug 06 12:10:36 2021 +0200 @@ -672,7 +672,9 @@ _reorder_filelog_parents(repo, fl, sorted(to_fix)) -def repair_issue6528(ui, repo, dry_run=False, to_report=None, from_report=None): +def repair_issue6528( + ui, repo, dry_run=False, to_report=None, from_report=None, paranoid=False +): from .. import store # avoid cycle @contextlib.contextmanager @@ -719,6 +721,12 @@ affected = _is_revision_affected_fast( repo, fl, filerev, metadata_cache ) + if paranoid: + slow = _is_revision_affected(fl, filerev) + if slow != affected: + msg = _(b"paranoid check failed for '%s' at node %s") + node = binascii.hexlify(fl.node(filerev)) + raise error.Abort(msg % (filename, node)) if affected: msg = b"found affected revision %d for filelog '%s'\n" ui.warn(msg % (filerev, path))