mercurial/copies.py
changeset 46159 929054848d6c
parent 46158 1fcfff09cac5
child 46161 3a0c41336961
--- 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