copies: extract function for finding directory renames
The directory rename code is logically quite isolated, so it makes
sense to make it physically isolated as well.
Differential Revision: https://phab.mercurial-scm.org/D7977
--- a/mercurial/copies.py Wed Jan 22 15:23:30 2020 -0800
+++ b/mercurial/copies.py Wed Jan 22 13:06:56 2020 -0800
@@ -657,6 +657,12 @@
repo.ui.debug(b" checking for directory renames\n")
+ dirmove, movewithdir = _dir_renames(repo, c1, c2, copy, fullcopy, u1, u2)
+
+ return copy, movewithdir, diverge, renamedelete, dirmove
+
+
+def _dir_renames(repo, c1, c2, copy, fullcopy, u1, u2):
# generate a directory move map
d1, d2 = c1.dirs(), c2.dirs()
invalid = set()
@@ -688,7 +694,7 @@
del d1, d2, invalid
if not dirmove:
- return copy, {}, diverge, renamedelete, {}
+ return {}, {}
dirmove = {k + b"/": v + b"/" for k, v in pycompat.iteritems(dirmove)}
@@ -713,7 +719,7 @@
)
break
- return copy, movewithdir, diverge, renamedelete, dirmove
+ return dirmove, movewithdir
def _heuristicscopytracing(repo, c1, c2, base):