comparison mercurial/revlogutils/rewrite.py @ 51913:576876a518e1

revlogutils: for issue6528 fix, pre-cache nullrev as metadata-free
author Joerg Sonnenberger <joerg@bec.de>
date Sat, 20 Jul 2024 00:44:59 +0200
parents 82a94a956c54
children 3dbbb7d913a9
comparison
equal deleted inserted replaced
51912:82a94a956c54 51913:576876a518e1
734 _reorder_filelog_parents(repo, fl, sorted(to_fix)) 734 _reorder_filelog_parents(repo, fl, sorted(to_fix))
735 735
736 736
737 def filter_delta_issue6528(revlog, deltas_iter): 737 def filter_delta_issue6528(revlog, deltas_iter):
738 """filter incomind deltas to repaire issue 6528 on the fly""" 738 """filter incomind deltas to repaire issue 6528 on the fly"""
739 metadata_cache = {} 739 metadata_cache = {nullrev: False}
740 740
741 deltacomputer = deltas.deltacomputer(revlog) 741 deltacomputer = deltas.deltacomputer(revlog)
742 742
743 for rev, d in enumerate(deltas_iter, len(revlog)): 743 for rev, d in enumerate(deltas_iter, len(revlog)):
744 ( 744 (
845 filename = entry.target_id 845 filename = entry.target_id
846 fl = _filelog_from_filename(repo, entry.target_id) 846 fl = _filelog_from_filename(repo, entry.target_id)
847 847
848 # Set of filerevs (or hex filenodes if `to_report`) that need fixing 848 # Set of filerevs (or hex filenodes if `to_report`) that need fixing
849 to_fix = set() 849 to_fix = set()
850 metadata_cache = {} 850 metadata_cache = {nullrev: False}
851 for filerev in fl.revs(): 851 for filerev in fl.revs():
852 affected = _is_revision_affected_fast( 852 affected = _is_revision_affected_fast(
853 repo, fl, filerev, metadata_cache 853 repo, fl, filerev, metadata_cache
854 ) 854 )
855 if paranoid: 855 if paranoid: