--- a/mercurial/copies.py Sun Dec 13 20:26:27 2020 +0100
+++ b/mercurial/copies.py Sun Dec 13 20:16:34 2020 +0100
@@ -196,9 +196,7 @@
changelogrevision = cl.changelogrevision
- alwaysmatch = match.always()
-
- if rustmod is not None and alwaysmatch:
+ if rustmod is not None:
def revinfo(rev):
p1, p2 = parents(rev)
@@ -356,7 +354,7 @@
alwaysmatch = match.always()
- if rustmod is not None and alwaysmatch:
+ if rustmod is not None:
final_copies = rustmod.combine_changeset_copies(
list(revs), children_count, targetrev, revinfo, isancestor
)
@@ -396,12 +394,6 @@
elif parent == 2:
childcopies = changes.copied_from_p2
- if not alwaysmatch:
- childcopies = {
- dst: src
- for dst, src in childcopies.items()
- if match(dst)
- }
if childcopies:
newcopies = copies.copy()
for dest, source in pycompat.iteritems(childcopies):
@@ -447,6 +439,10 @@
for dest, (tt, source) in all_copies[targetrev].items():
if source is not None:
final_copies[dest] = source
+ if not alwaysmatch:
+ for filename in list(final_copies.keys()):
+ if not match(filename):
+ del final_copies[filename]
return final_copies