Mercurial > hg
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: |