diff mercurial/copies.py @ 42223:d69bc8ffbe6f

copies: inline _computenonoverlap() in mergecopies() We now call pathcopies() from the base to each of the commits, and that calls _computeforwardmissing(), which does file prefetching (in the remotefilelog override). So the call to _computenonoverlap() is now pointless (the sets of files from _computenonoverlap() are subsets of the sets of files from _computeforwardmissing()). This somehow also fixes a broken remotefilelog test. Differential Revision: https://phab.mercurial-scm.org/D6256
author Martin von Zweigbergk <martinvonz@google.com>
date Fri, 12 Apr 2019 10:44:37 -0700
parents 57203e0210f8
children a20d7c6abff2
line wrap: on
line diff
--- a/mercurial/copies.py	Thu Apr 11 23:22:54 2019 -0700
+++ b/mercurial/copies.py	Fri Apr 12 10:44:37 2019 -0700
@@ -353,26 +353,6 @@
     return _chain(x, y, _backwardrenames(x, a, match=match),
                   _forwardcopies(a, y, match=match))
 
-def _computenonoverlap(repo, c1, c2, addedinm1, addedinm2, debug=True):
-    """Computes, based on addedinm1 and addedinm2, the files exclusive to c1
-    and c2. This is its own function so extensions can easily wrap this call
-    to see what files mergecopies is about to process.
-
-    Even though c1 and c2 are not used in this function, they are useful in
-    other extensions for being able to read the file nodes of the changed files.
-    """
-    u1 = sorted(addedinm1 - addedinm2)
-    u2 = sorted(addedinm2 - addedinm1)
-
-    if debug:
-        header = "  unmatched files in %s"
-        if u1:
-            repo.ui.debug("%s:\n   %s\n" % (header % 'local', "\n   ".join(u1)))
-        if u2:
-            repo.ui.debug("%s:\n   %s\n" % (header % 'other', "\n   ".join(u2)))
-
-    return u1, u2
-
 def mergecopies(repo, c1, c2, base):
     """
     Finds moves and copies between context c1 and c2 that are relevant for
@@ -555,7 +535,14 @@
     # find interesting file sets from manifests
     addedinm1 = m1.filesnotin(mb, repo.narrowmatch())
     addedinm2 = m2.filesnotin(mb, repo.narrowmatch())
-    u1, u2 = _computenonoverlap(repo, c1, c2, addedinm1, addedinm2)
+    u1 = sorted(addedinm1 - addedinm2)
+    u2 = sorted(addedinm2 - addedinm1)
+
+    header = "  unmatched files in %s"
+    if u1:
+        repo.ui.debug("%s:\n   %s\n" % (header % 'local', "\n   ".join(u1)))
+    if u2:
+        repo.ui.debug("%s:\n   %s\n" % (header % 'other', "\n   ".join(u2)))
 
     fullcopy = copies1.copy()
     fullcopy.update(copies2)