diff mercurial/copies.py @ 44276:30862e226339

copies: avoid filtering by short-circuit dirstate-only copies earlier The call to `y.ancestor(x)` triggered repo filtering, which we'd like to avoid in the simple `hg status --copies` case. Differential Revision: https://phab.mercurial-scm.org/D8071
author Martin von Zweigbergk <martinvonz@google.com>
date Tue, 04 Feb 2020 10:16:30 -0800
parents b4057d001760
children 45f3f35cefe7 d452acc8cce8
line wrap: on
line diff
--- a/mercurial/copies.py	Tue Feb 04 10:14:44 2020 -0800
+++ b/mercurial/copies.py	Tue Feb 04 10:16:30 2020 -0800
@@ -403,13 +403,15 @@
         )
     if x == y or not x or not y:
         return {}
+    if y.rev() is None and x == y.p1():
+        if debug:
+            repo.ui.debug(b'debug.copies: search mode: dirstate\n')
+        # short-circuit to avoid issues with merge states
+        return _dirstatecopies(repo, match)
     a = y.ancestor(x)
     if a == x:
         if debug:
             repo.ui.debug(b'debug.copies: search mode: forward\n')
-        if y.rev() is None and x == y.p1():
-            # short-circuit to avoid issues with merge states
-            return _dirstatecopies(repo, match)
         copies = _forwardcopies(x, y, match=match)
     elif a == y:
         if debug: