--- 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))