D6601: copies: remove most early returns from pathcopies() and _forwardcopies()

martinvonz (Martin von Zweigbergk) phabricator at mercurial-scm.org
Thu Jul 4 11:00:27 EDT 2019


martinvonz created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  I want to split up _chainandfilter() more so the call to _filter()
  consistently happens at the end of pathcopies(). This prepares for
  that change.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D6601

AFFECTED FILES
  mercurial/copies.py

CHANGE DETAILS

diff --git a/mercurial/copies.py b/mercurial/copies.py
--- a/mercurial/copies.py
+++ b/mercurial/copies.py
@@ -326,8 +326,10 @@
     if b.rev() is None:
         cm = _committedforwardcopies(a, b.p1(), match)
         # combine copies from dirstate if necessary
-        return _chainandfilter(a, b, cm, _dirstatecopies(b._repo, match))
-    return _committedforwardcopies(a, b, match)
+        copies = _chainandfilter(a, b, cm, _dirstatecopies(b._repo, match))
+    else:
+        copies  = _committedforwardcopies(a, b, match)
+    return copies
 
 def _backwardrenames(a, b, match):
     if a._repo.ui.config('experimental', 'copytrace') == 'off':
@@ -366,15 +368,17 @@
         if y.rev() is None and x == y.p1():
             # short-circuit to avoid issues with merge states
             return _dirstatecopies(repo, match)
-        return _forwardcopies(x, y, match=match)
-    if a == y:
+        copies = _forwardcopies(x, y, match=match)
+    elif a == y:
         if debug:
             repo.ui.debug('debug.copies: search mode: backward\n')
-        return _backwardrenames(x, y, match=match)
-    if debug:
-        repo.ui.debug('debug.copies: search mode: combined\n')
-    return _chainandfilter(x, y, _backwardrenames(x, a, match=match),
-                           _forwardcopies(a, y, match=match))
+        copies = _backwardrenames(x, y, match=match)
+    else:
+        if debug:
+            repo.ui.debug('debug.copies: search mode: combined\n')
+        copies = _chainandfilter(x, y, _backwardrenames(x, a, match=match),
+                                 _forwardcopies(a, y, match=match))
+    return copies
 
 def mergecopies(repo, c1, c2, base):
     """



To: martinvonz, #hg-reviewers
Cc: mercurial-devel


More information about the Mercurial-devel mailing list