Mercurial > hg
changeset 43713:95d2eab0a7b9
dirstate: include explicit matches in match.traversedir calls
The caller should not have to register to get both explicit and
non-explicit matches.
Differential Revision: https://phab.mercurial-scm.org/D7439
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Fri, 15 Nov 2019 15:36:09 -0800 |
parents | f965b1027fb0 |
children | deacffd227e2 |
files | mercurial/dirstate.py mercurial/merge.py |
diffstat | 2 files changed, 6 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/dirstate.py Fri Nov 15 14:47:31 2019 -0800 +++ b/mercurial/dirstate.py Fri Nov 15 15:36:09 2019 -0800 @@ -939,6 +939,11 @@ # step 1: find all explicit files results, work, dirsnotfound = self._walkexplicit(match, subrepos) + if matchtdir: + for d in work: + matchtdir(d[0]) + for d in dirsnotfound: + matchtdir(d) skipstep3 = skipstep3 and not (work or dirsnotfound) work = [d for d in work if not dirignore(d[0])]
--- a/mercurial/merge.py Fri Nov 15 14:47:31 2019 -0800 +++ b/mercurial/merge.py Fri Nov 15 15:36:09 2019 -0800 @@ -2676,7 +2676,6 @@ # There's no API to copy a matcher. So mutate the passed matcher and # restore it when we're done. - oldexplicitdir = matcher.explicitdir oldtraversedir = matcher.traversedir res = [] @@ -2684,7 +2683,7 @@ try: if removeemptydirs: directories = [] - matcher.explicitdir = matcher.traversedir = directories.append + matcher.traversedir = directories.append status = repo.status(match=matcher, ignored=ignored, unknown=True) @@ -2706,5 +2705,4 @@ return res finally: - matcher.explicitdir = oldexplicitdir matcher.traversedir = oldtraversedir