# HG changeset patch # User Martin von Zweigbergk # Date 1526595952 25200 # Node ID 18e6ea9ba81d90d2c6b8c6a2439358ac1f9220e1 # Parent 8f37b5fc5abf42e1766c4976e6eb910eafbc175a narrow: filter set of files to check for case-folding to core Differential Revision: https://phab.mercurial-scm.org/D3575 diff -r 8f37b5fc5abf -r 18e6ea9ba81d hgext/narrow/narrowmerge.py --- a/hgext/narrow/narrowmerge.py Thu May 17 15:12:48 2018 -0700 +++ b/hgext/narrow/narrowmerge.py Thu May 17 15:25:52 2018 -0700 @@ -10,26 +10,9 @@ from mercurial import ( copies, extensions, - merge, ) def setup(): - def _checkcollision(orig, repo, wmf, actions): - narrowmatch = repo.narrowmatch() - if not narrowmatch.always(): - wmf = wmf.matches(narrowmatch) - if actions: - narrowactions = {} - for m, actionsfortype in actions.iteritems(): - narrowactions[m] = [] - for (f, args, msg) in actionsfortype: - if narrowmatch(f): - narrowactions[m].append((f, args, msg)) - actions = narrowactions - return orig(repo, wmf, actions) - - extensions.wrapfunction(merge, '_checkcollision', _checkcollision) - def _computenonoverlap(orig, repo, *args, **kwargs): u1, u2 = orig(repo, *args, **kwargs) narrowmatch = repo.narrowmatch() diff -r 8f37b5fc5abf -r 18e6ea9ba81d mercurial/merge.py --- a/mercurial/merge.py Thu May 17 15:12:48 2018 -0700 +++ b/mercurial/merge.py Thu May 17 15:25:52 2018 -0700 @@ -903,6 +903,23 @@ return actions def _checkcollision(repo, wmf, actions): + """ + 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) + if actions: + narrowactions = {} + for m, actionsfortype in actions.iteritems(): + narrowactions[m] = [] + for (f, args, msg) in actionsfortype: + if narrowmatch(f): + narrowactions[m].append((f, args, msg)) + actions = narrowactions + # build provisional merged manifest up pmmf = set(wmf)