merge: use manifestdict.walk() instead of manifestdict.matches()
As with other patches in this series, this avoids making a
potentially-expensive copy of a manifest.
Differential Revision: https://phab.mercurial-scm.org/D8084
--- a/mercurial/merge.py Wed Feb 05 16:58:50 2020 -0500
+++ b/mercurial/merge.py Wed Feb 05 17:12:39 2020 -0500
@@ -997,11 +997,10 @@
"""
Check for case-folding collisions.
"""
-
# If the repo is narrowed, filter out files outside the narrowspec.
narrowmatch = repo.narrowmatch()
if not narrowmatch.always():
- wmf = wmf.matches(narrowmatch)
+ pmmf = set(wmf.walk(narrowmatch))
if actions:
narrowactions = {}
for m, actionsfortype in pycompat.iteritems(actions):
@@ -1010,9 +1009,9 @@
if narrowmatch(f):
narrowactions[m].append((f, args, msg))
actions = narrowactions
-
- # build provisional merged manifest up
- pmmf = set(wmf)
+ else:
+ # build provisional merged manifest up
+ pmmf = set(wmf)
if actions:
# KEEP and EXEC are no-op