mercurial/revlogutils/rewrite.py
branchstable
changeset 47812 855463b5fe49
parent 47811 32e21ac3adb1
child 47813 5b046c2e3000
equal deleted inserted replaced
47811:32e21ac3adb1 47812:855463b5fe49
   670                 continue
   670                 continue
   671             if not dry_run:
   671             if not dry_run:
   672                 _reorder_filelog_parents(repo, fl, sorted(to_fix))
   672                 _reorder_filelog_parents(repo, fl, sorted(to_fix))
   673 
   673 
   674 
   674 
   675 def repair_issue6528(ui, repo, dry_run=False, to_report=None, from_report=None):
   675 def repair_issue6528(
       
   676     ui, repo, dry_run=False, to_report=None, from_report=None, paranoid=False
       
   677 ):
   676     from .. import store  # avoid cycle
   678     from .. import store  # avoid cycle
   677 
   679 
   678     @contextlib.contextmanager
   680     @contextlib.contextmanager
   679     def context():
   681     def context():
   680         if dry_run or to_report:  # No need for locking
   682         if dry_run or to_report:  # No need for locking
   717             metadata_cache = {}
   719             metadata_cache = {}
   718             for filerev in fl.revs():
   720             for filerev in fl.revs():
   719                 affected = _is_revision_affected_fast(
   721                 affected = _is_revision_affected_fast(
   720                     repo, fl, filerev, metadata_cache
   722                     repo, fl, filerev, metadata_cache
   721                 )
   723                 )
       
   724                 if paranoid:
       
   725                     slow = _is_revision_affected(fl, filerev)
       
   726                     if slow != affected:
       
   727                         msg = _(b"paranoid check failed for '%s' at node %s")
       
   728                         node = binascii.hexlify(fl.node(filerev))
       
   729                         raise error.Abort(msg % (filename, node))
   722                 if affected:
   730                 if affected:
   723                     msg = b"found affected revision %d for filelog '%s'\n"
   731                     msg = b"found affected revision %d for filelog '%s'\n"
   724                     ui.warn(msg % (filerev, path))
   732                     ui.warn(msg % (filerev, path))
   725                     found_nothing = False
   733                     found_nothing = False
   726                     if not dry_run:
   734                     if not dry_run: