Mercurial > hg-stable
changeset 32533:369c2d5eeea3
match: remove support for exact matching from main matcher class
Exact matching is now handled by the exactmatcher class.
We can safely remove _files from the __repr__() implementation,
because even though the field is set, the patternspat field is enough
for the representation to be unambiguous (which was not the case when
the matcher could handle exact matches).
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Thu, 18 May 2017 23:39:39 -0700 |
parents | a3583852861a |
children | 7095dbc266e3 |
files | mercurial/match.py tests/test-eolfilename.t tests/test-hgignore.t tests/test-walk.t |
diffstat | 4 files changed, 91 insertions(+), 100 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/match.py Wed May 17 09:26:15 2017 -0700 +++ b/mercurial/match.py Thu May 18 23:39:39 2017 -0700 @@ -146,17 +146,17 @@ m = exactmatcher(root, cwd, patterns, badfn) else: m = matcher(root, cwd, normalize, patterns, include=None, - default=default, exact=exact, auditor=auditor, ctx=ctx, + default=default, auditor=auditor, ctx=ctx, listsubrepos=listsubrepos, warn=warn, badfn=badfn) if include: im = matcher(root, cwd, normalize, [], include=include, default=default, - exact=False, auditor=auditor, ctx=ctx, - listsubrepos=listsubrepos, warn=warn, badfn=None) + auditor=auditor, ctx=ctx, listsubrepos=listsubrepos, + warn=warn, badfn=None) m = intersectmatchers(m, im) if exclude: em = matcher(root, cwd, normalize, [], include=exclude, default=default, - exact=False, auditor=auditor, ctx=ctx, - listsubrepos=listsubrepos, warn=warn, badfn=None) + auditor=auditor, ctx=ctx, listsubrepos=listsubrepos, + warn=warn, badfn=None) m = differencematcher(m, em) return m @@ -314,7 +314,7 @@ class matcher(basematcher): def __init__(self, root, cwd, normalize, patterns, include=None, - default='glob', exact=False, auditor=None, ctx=None, + default='glob', auditor=None, ctx=None, listsubrepos=False, warn=None, badfn=None): super(matcher, self).__init__(root, cwd, badfn, relativeuipath=bool(include or patterns)) @@ -342,13 +342,7 @@ self._includeroots.update(roots) self._includedirs.update(dirs) matchfns.append(im) - if exact: - if isinstance(patterns, list): - self._files = patterns - else: - self._files = list(patterns) - matchfns.append(self.exact) - elif patterns: + if patterns: kindpats = normalize(patterns, default, root, cwd, auditor, warn) if not _kindpatsalwaysmatch(kindpats): self._files = _explicitfiles(kindpats) @@ -402,12 +396,9 @@ def always(self): return self._always - def isexact(self): - return self.matchfn == self.exact - def __repr__(self): - return ('<matcher files=%r, patterns=%r, includes=%r>' % - (self._files, self.patternspat, self.includepat)) + return ('<matcher patterns=%r, includes=%r>' % + (self.patternspat, self.includepat)) class exactmatcher(basematcher): '''Matches the input files exactly. They are interpreted as paths, not
--- a/tests/test-eolfilename.t Wed May 17 09:26:15 2017 -0700 +++ b/tests/test-eolfilename.t Thu May 18 23:39:39 2017 -0700 @@ -33,7 +33,7 @@ [255] $ echo foo > "$A" $ hg debugwalk - matcher: <matcher files=[], patterns=None, includes=None> + matcher: <matcher patterns=None, includes=None> f he\r (no-eol) (esc) llo he\r (no-eol) (esc) llo
--- a/tests/test-hgignore.t Wed May 17 09:26:15 2017 -0700 +++ b/tests/test-hgignore.t Thu May 18 23:39:39 2017 -0700 @@ -164,7 +164,7 @@ A b.o $ hg debugignore - <matcher files=[], patterns=None, includes='(?:(?:|.*/)[^/]*(?:/|$))'> + <matcher patterns=None, includes='(?:(?:|.*/)[^/]*(?:/|$))'> $ hg debugignore b.o b.o is ignored
--- a/tests/test-walk.t Wed May 17 09:26:15 2017 -0700 +++ b/tests/test-walk.t Thu May 18 23:39:39 2017 -0700 @@ -29,7 +29,7 @@ $ hg commit -m "commit #0" $ hg debugwalk - matcher: <matcher files=[], patterns=None, includes=None> + matcher: <matcher patterns=None, includes=None> f beans/black beans/black f beans/borlotti beans/borlotti f beans/kidney beans/kidney @@ -44,7 +44,7 @@ f mammals/Procyonidae/raccoon mammals/Procyonidae/raccoon f mammals/skunk mammals/skunk $ hg debugwalk -I. - matcher: <matcher files=[], patterns=None, includes='(?:)'> + matcher: <matcher patterns=None, includes='(?:)'> f beans/black beans/black f beans/borlotti beans/borlotti f beans/kidney beans/kidney @@ -61,7 +61,7 @@ $ cd mammals $ hg debugwalk - matcher: <matcher files=[], patterns=None, includes=None> + matcher: <matcher patterns=None, includes=None> f beans/black ../beans/black f beans/borlotti ../beans/borlotti f beans/kidney ../beans/kidney @@ -76,7 +76,7 @@ f mammals/Procyonidae/raccoon Procyonidae/raccoon f mammals/skunk skunk $ hg debugwalk -X ../beans - matcher: <differencematcher m1=<matcher files=[], patterns=None, includes=None>, m2=<matcher files=[], patterns=None, includes='(?:beans(?:/|$))'>> + matcher: <differencematcher m1=<matcher patterns=None, includes=None>, m2=<matcher patterns=None, includes='(?:beans(?:/|$))'>> f fennel ../fennel f fenugreek ../fenugreek f fiddlehead ../fiddlehead @@ -85,31 +85,31 @@ f mammals/Procyonidae/raccoon Procyonidae/raccoon f mammals/skunk skunk $ hg debugwalk -I '*k' - matcher: <matcher files=[], patterns=None, includes='(?:mammals\\/[^/]*k(?:/|$))'> + matcher: <matcher patterns=None, includes='(?:mammals\\/[^/]*k(?:/|$))'> f mammals/skunk skunk $ hg debugwalk -I 'glob:*k' - matcher: <matcher files=[], patterns=None, includes='(?:mammals\\/[^/]*k(?:/|$))'> + matcher: <matcher patterns=None, includes='(?:mammals\\/[^/]*k(?:/|$))'> f mammals/skunk skunk $ hg debugwalk -I 'relglob:*k' - matcher: <matcher files=[], patterns=None, includes='(?:(?:|.*/)[^/]*k(?:/|$))'> + matcher: <matcher patterns=None, includes='(?:(?:|.*/)[^/]*k(?:/|$))'> f beans/black ../beans/black f fenugreek ../fenugreek f mammals/skunk skunk $ hg debugwalk -I 'relglob:*k' . - matcher: <intersectionmatcher m1=<matcher files=['mammals'], patterns='(?:mammals(?:/|$))', includes=None>, m2=<matcher files=[], patterns=None, includes='(?:(?:|.*/)[^/]*k(?:/|$))'>> + matcher: <intersectionmatcher m1=<matcher patterns='(?:mammals(?:/|$))', includes=None>, m2=<matcher patterns=None, includes='(?:(?:|.*/)[^/]*k(?:/|$))'>> f mammals/skunk skunk $ hg debugwalk -I 're:.*k$' - matcher: <matcher files=[], patterns=None, includes='(?:.*k$)'> + matcher: <matcher patterns=None, includes='(?:.*k$)'> f beans/black ../beans/black f fenugreek ../fenugreek f mammals/skunk skunk $ hg debugwalk -I 'relre:.*k$' - matcher: <matcher files=[], patterns=None, includes='(?:.*.*k$)'> + matcher: <matcher patterns=None, includes='(?:.*.*k$)'> f beans/black ../beans/black f fenugreek ../fenugreek f mammals/skunk skunk $ hg debugwalk -I 'path:beans' - matcher: <matcher files=[], patterns=None, includes='(?:^beans(?:/|$))'> + matcher: <matcher patterns=None, includes='(?:^beans(?:/|$))'> f beans/black ../beans/black f beans/borlotti ../beans/borlotti f beans/kidney ../beans/kidney @@ -117,7 +117,7 @@ f beans/pinto ../beans/pinto f beans/turtle ../beans/turtle $ hg debugwalk -I 'relpath:detour/../../beans' - matcher: <matcher files=[], patterns=None, includes='(?:beans(?:/|$))'> + matcher: <matcher patterns=None, includes='(?:beans(?:/|$))'> f beans/black ../beans/black f beans/borlotti ../beans/borlotti f beans/kidney ../beans/kidney @@ -126,27 +126,27 @@ f beans/turtle ../beans/turtle $ hg debugwalk 'rootfilesin:' - matcher: <matcher files=[], patterns='(?:^[^/]+$)', includes=None> + matcher: <matcher patterns='(?:^[^/]+$)', includes=None> f fennel ../fennel f fenugreek ../fenugreek f fiddlehead ../fiddlehead $ hg debugwalk -I 'rootfilesin:' - matcher: <matcher files=[], patterns=None, includes='(?:^[^/]+$)'> + matcher: <matcher patterns=None, includes='(?:^[^/]+$)'> f fennel ../fennel f fenugreek ../fenugreek f fiddlehead ../fiddlehead $ hg debugwalk 'rootfilesin:.' - matcher: <matcher files=[], patterns='(?:^[^/]+$)', includes=None> + matcher: <matcher patterns='(?:^[^/]+$)', includes=None> f fennel ../fennel f fenugreek ../fenugreek f fiddlehead ../fiddlehead $ hg debugwalk -I 'rootfilesin:.' - matcher: <matcher files=[], patterns=None, includes='(?:^[^/]+$)'> + matcher: <matcher patterns=None, includes='(?:^[^/]+$)'> f fennel ../fennel f fenugreek ../fenugreek f fiddlehead ../fiddlehead $ hg debugwalk -X 'rootfilesin:' - matcher: <differencematcher m1=<matcher files=[], patterns=None, includes=None>, m2=<matcher files=[], patterns=None, includes='(?:^[^/]+$)'>> + matcher: <differencematcher m1=<matcher patterns=None, includes=None>, m2=<matcher patterns=None, includes='(?:^[^/]+$)'>> f beans/black ../beans/black f beans/borlotti ../beans/borlotti f beans/kidney ../beans/kidney @@ -158,15 +158,15 @@ f mammals/Procyonidae/raccoon Procyonidae/raccoon f mammals/skunk skunk $ hg debugwalk 'rootfilesin:fennel' - matcher: <matcher files=[], patterns='(?:^fennel/[^/]+$)', includes=None> + matcher: <matcher patterns='(?:^fennel/[^/]+$)', includes=None> $ hg debugwalk -I 'rootfilesin:fennel' - matcher: <matcher files=[], patterns=None, includes='(?:^fennel/[^/]+$)'> + matcher: <matcher patterns=None, includes='(?:^fennel/[^/]+$)'> $ hg debugwalk 'rootfilesin:skunk' - matcher: <matcher files=[], patterns='(?:^skunk/[^/]+$)', includes=None> + matcher: <matcher patterns='(?:^skunk/[^/]+$)', includes=None> $ hg debugwalk -I 'rootfilesin:skunk' - matcher: <matcher files=[], patterns=None, includes='(?:^skunk/[^/]+$)'> + matcher: <matcher patterns=None, includes='(?:^skunk/[^/]+$)'> $ hg debugwalk 'rootfilesin:beans' - matcher: <matcher files=[], patterns='(?:^beans/[^/]+$)', includes=None> + matcher: <matcher patterns='(?:^beans/[^/]+$)', includes=None> f beans/black ../beans/black f beans/borlotti ../beans/borlotti f beans/kidney ../beans/kidney @@ -174,7 +174,7 @@ f beans/pinto ../beans/pinto f beans/turtle ../beans/turtle $ hg debugwalk -I 'rootfilesin:beans' - matcher: <matcher files=[], patterns=None, includes='(?:^beans/[^/]+$)'> + matcher: <matcher patterns=None, includes='(?:^beans/[^/]+$)'> f beans/black ../beans/black f beans/borlotti ../beans/borlotti f beans/kidney ../beans/kidney @@ -182,19 +182,19 @@ f beans/pinto ../beans/pinto f beans/turtle ../beans/turtle $ hg debugwalk 'rootfilesin:mammals' - matcher: <matcher files=[], patterns='(?:^mammals/[^/]+$)', includes=None> + matcher: <matcher patterns='(?:^mammals/[^/]+$)', includes=None> f mammals/skunk skunk $ hg debugwalk -I 'rootfilesin:mammals' - matcher: <matcher files=[], patterns=None, includes='(?:^mammals/[^/]+$)'> + matcher: <matcher patterns=None, includes='(?:^mammals/[^/]+$)'> f mammals/skunk skunk $ hg debugwalk 'rootfilesin:mammals/' - matcher: <matcher files=[], patterns='(?:^mammals/[^/]+$)', includes=None> + matcher: <matcher patterns='(?:^mammals/[^/]+$)', includes=None> f mammals/skunk skunk $ hg debugwalk -I 'rootfilesin:mammals/' - matcher: <matcher files=[], patterns=None, includes='(?:^mammals/[^/]+$)'> + matcher: <matcher patterns=None, includes='(?:^mammals/[^/]+$)'> f mammals/skunk skunk $ hg debugwalk -X 'rootfilesin:mammals' - matcher: <differencematcher m1=<matcher files=[], patterns=None, includes=None>, m2=<matcher files=[], patterns=None, includes='(?:^mammals/[^/]+$)'>> + matcher: <differencematcher m1=<matcher patterns=None, includes=None>, m2=<matcher patterns=None, includes='(?:^mammals/[^/]+$)'>> f beans/black ../beans/black f beans/borlotti ../beans/borlotti f beans/kidney ../beans/kidney @@ -209,31 +209,31 @@ f mammals/Procyonidae/raccoon Procyonidae/raccoon $ hg debugwalk . - matcher: <matcher files=['mammals'], patterns='(?:mammals(?:/|$))', includes=None> + matcher: <matcher patterns='(?:mammals(?:/|$))', includes=None> f mammals/Procyonidae/cacomistle Procyonidae/cacomistle f mammals/Procyonidae/coatimundi Procyonidae/coatimundi f mammals/Procyonidae/raccoon Procyonidae/raccoon f mammals/skunk skunk $ hg debugwalk -I. - matcher: <matcher files=[], patterns=None, includes='(?:mammals(?:/|$))'> + matcher: <matcher patterns=None, includes='(?:mammals(?:/|$))'> f mammals/Procyonidae/cacomistle Procyonidae/cacomistle f mammals/Procyonidae/coatimundi Procyonidae/coatimundi f mammals/Procyonidae/raccoon Procyonidae/raccoon f mammals/skunk skunk $ hg debugwalk Procyonidae - matcher: <matcher files=['mammals/Procyonidae'], patterns='(?:mammals\\/Procyonidae(?:/|$))', includes=None> + matcher: <matcher patterns='(?:mammals\\/Procyonidae(?:/|$))', includes=None> f mammals/Procyonidae/cacomistle Procyonidae/cacomistle f mammals/Procyonidae/coatimundi Procyonidae/coatimundi f mammals/Procyonidae/raccoon Procyonidae/raccoon $ cd Procyonidae $ hg debugwalk . - matcher: <matcher files=['mammals/Procyonidae'], patterns='(?:mammals\\/Procyonidae(?:/|$))', includes=None> + matcher: <matcher patterns='(?:mammals\\/Procyonidae(?:/|$))', includes=None> f mammals/Procyonidae/cacomistle cacomistle f mammals/Procyonidae/coatimundi coatimundi f mammals/Procyonidae/raccoon raccoon $ hg debugwalk .. - matcher: <matcher files=['mammals'], patterns='(?:mammals(?:/|$))', includes=None> + matcher: <matcher patterns='(?:mammals(?:/|$))', includes=None> f mammals/Procyonidae/cacomistle cacomistle f mammals/Procyonidae/coatimundi coatimundi f mammals/Procyonidae/raccoon raccoon @@ -241,7 +241,7 @@ $ cd .. $ hg debugwalk ../beans - matcher: <matcher files=['beans'], patterns='(?:beans(?:/|$))', includes=None> + matcher: <matcher patterns='(?:beans(?:/|$))', includes=None> f beans/black ../beans/black f beans/borlotti ../beans/borlotti f beans/kidney ../beans/kidney @@ -249,7 +249,7 @@ f beans/pinto ../beans/pinto f beans/turtle ../beans/turtle $ hg debugwalk . - matcher: <matcher files=['mammals'], patterns='(?:mammals(?:/|$))', includes=None> + matcher: <matcher patterns='(?:mammals(?:/|$))', includes=None> f mammals/Procyonidae/cacomistle Procyonidae/cacomistle f mammals/Procyonidae/coatimundi Procyonidae/coatimundi f mammals/Procyonidae/raccoon Procyonidae/raccoon @@ -263,7 +263,7 @@ $ cd .. $ hg debugwalk -Ibeans - matcher: <matcher files=[], patterns=None, includes='(?:beans(?:/|$))'> + matcher: <matcher patterns=None, includes='(?:beans(?:/|$))'> f beans/black beans/black f beans/borlotti beans/borlotti f beans/kidney beans/kidney @@ -271,56 +271,56 @@ f beans/pinto beans/pinto f beans/turtle beans/turtle $ hg debugwalk -I '{*,{b,m}*/*}k' - matcher: <matcher files=[], patterns=None, includes='(?:(?:[^/]*|(?:b|m)[^/]*\\/[^/]*)k(?:/|$))'> + matcher: <matcher patterns=None, includes='(?:(?:[^/]*|(?:b|m)[^/]*\\/[^/]*)k(?:/|$))'> f beans/black beans/black f fenugreek fenugreek f mammals/skunk mammals/skunk $ hg debugwalk -Ibeans mammals - matcher: <intersectionmatcher m1=<matcher files=['mammals'], patterns='(?:mammals(?:/|$))', includes=None>, m2=<matcher files=[], patterns=None, includes='(?:beans(?:/|$))'>> + matcher: <intersectionmatcher m1=<matcher patterns='(?:mammals(?:/|$))', includes=None>, m2=<matcher patterns=None, includes='(?:beans(?:/|$))'>> $ hg debugwalk -Inon-existent - matcher: <matcher files=[], patterns=None, includes='(?:non\\-existent(?:/|$))'> + matcher: <matcher patterns=None, includes='(?:non\\-existent(?:/|$))'> $ hg debugwalk -Inon-existent -Ibeans/black - matcher: <matcher files=[], patterns=None, includes='(?:non\\-existent(?:/|$)|beans\\/black(?:/|$))'> + matcher: <matcher patterns=None, includes='(?:non\\-existent(?:/|$)|beans\\/black(?:/|$))'> f beans/black beans/black $ hg debugwalk -Ibeans beans/black - matcher: <intersectionmatcher m1=<matcher files=['beans/black'], patterns='(?:beans\\/black(?:/|$))', includes=None>, m2=<matcher files=[], patterns=None, includes='(?:beans(?:/|$))'>> + matcher: <intersectionmatcher m1=<matcher patterns='(?:beans\\/black(?:/|$))', includes=None>, m2=<matcher patterns=None, includes='(?:beans(?:/|$))'>> f beans/black beans/black exact $ hg debugwalk -Ibeans/black beans - matcher: <intersectionmatcher m1=<matcher files=['beans'], patterns='(?:beans(?:/|$))', includes=None>, m2=<matcher files=[], patterns=None, includes='(?:beans\\/black(?:/|$))'>> + matcher: <intersectionmatcher m1=<matcher patterns='(?:beans(?:/|$))', includes=None>, m2=<matcher patterns=None, includes='(?:beans\\/black(?:/|$))'>> f beans/black beans/black $ hg debugwalk -Xbeans/black beans - matcher: <differencematcher m1=<matcher files=['beans'], patterns='(?:beans(?:/|$))', includes=None>, m2=<matcher files=[], patterns=None, includes='(?:beans\\/black(?:/|$))'>> + matcher: <differencematcher m1=<matcher patterns='(?:beans(?:/|$))', includes=None>, m2=<matcher patterns=None, includes='(?:beans\\/black(?:/|$))'>> f beans/borlotti beans/borlotti f beans/kidney beans/kidney f beans/navy beans/navy f beans/pinto beans/pinto f beans/turtle beans/turtle $ hg debugwalk -Xbeans/black -Ibeans - matcher: <differencematcher m1=<matcher files=[], patterns=None, includes='(?:beans(?:/|$))'>, m2=<matcher files=[], patterns=None, includes='(?:beans\\/black(?:/|$))'>> + matcher: <differencematcher m1=<matcher patterns=None, includes='(?:beans(?:/|$))'>, m2=<matcher patterns=None, includes='(?:beans\\/black(?:/|$))'>> f beans/borlotti beans/borlotti f beans/kidney beans/kidney f beans/navy beans/navy f beans/pinto beans/pinto f beans/turtle beans/turtle $ hg debugwalk -Xbeans/black beans/black - matcher: <differencematcher m1=<matcher files=['beans/black'], patterns='(?:beans\\/black(?:/|$))', includes=None>, m2=<matcher files=[], patterns=None, includes='(?:beans\\/black(?:/|$))'>> + matcher: <differencematcher m1=<matcher patterns='(?:beans\\/black(?:/|$))', includes=None>, m2=<matcher patterns=None, includes='(?:beans\\/black(?:/|$))'>> f beans/black beans/black exact $ hg debugwalk -Xbeans/black -Ibeans/black - matcher: <differencematcher m1=<matcher files=[], patterns=None, includes='(?:beans\\/black(?:/|$))'>, m2=<matcher files=[], patterns=None, includes='(?:beans\\/black(?:/|$))'>> + matcher: <differencematcher m1=<matcher patterns=None, includes='(?:beans\\/black(?:/|$))'>, m2=<matcher patterns=None, includes='(?:beans\\/black(?:/|$))'>> $ hg debugwalk -Xbeans beans/black - matcher: <differencematcher m1=<matcher files=['beans/black'], patterns='(?:beans\\/black(?:/|$))', includes=None>, m2=<matcher files=[], patterns=None, includes='(?:beans(?:/|$))'>> + matcher: <differencematcher m1=<matcher patterns='(?:beans\\/black(?:/|$))', includes=None>, m2=<matcher patterns=None, includes='(?:beans(?:/|$))'>> f beans/black beans/black exact $ hg debugwalk -Xbeans -Ibeans/black - matcher: <differencematcher m1=<matcher files=[], patterns=None, includes='(?:beans\\/black(?:/|$))'>, m2=<matcher files=[], patterns=None, includes='(?:beans(?:/|$))'>> + matcher: <differencematcher m1=<matcher patterns=None, includes='(?:beans\\/black(?:/|$))'>, m2=<matcher patterns=None, includes='(?:beans(?:/|$))'>> $ hg debugwalk 'glob:mammals/../beans/b*' - matcher: <matcher files=['beans'], patterns='(?:beans\\/b[^/]*$)', includes=None> + matcher: <matcher patterns='(?:beans\\/b[^/]*$)', includes=None> f beans/black beans/black f beans/borlotti beans/borlotti $ hg debugwalk '-X*/Procyonidae' mammals - matcher: <differencematcher m1=<matcher files=['mammals'], patterns='(?:mammals(?:/|$))', includes=None>, m2=<matcher files=[], patterns=None, includes='(?:[^/]*\\/Procyonidae(?:/|$))'>> + matcher: <differencematcher m1=<matcher patterns='(?:mammals(?:/|$))', includes=None>, m2=<matcher patterns=None, includes='(?:[^/]*\\/Procyonidae(?:/|$))'>> f mammals/skunk mammals/skunk $ hg debugwalk path:mammals - matcher: <matcher files=['mammals'], patterns='(?:^mammals(?:/|$))', includes=None> + matcher: <matcher patterns='(?:^mammals(?:/|$))', includes=None> f mammals/Procyonidae/cacomistle mammals/Procyonidae/cacomistle f mammals/Procyonidae/coatimundi mammals/Procyonidae/coatimundi f mammals/Procyonidae/raccoon mammals/Procyonidae/raccoon @@ -347,7 +347,7 @@ Test absolute paths: $ hg debugwalk `pwd`/beans - matcher: <matcher files=['beans'], patterns='(?:beans(?:/|$))', includes=None> + matcher: <matcher patterns='(?:beans(?:/|$))', includes=None> f beans/black beans/black f beans/borlotti beans/borlotti f beans/kidney beans/kidney @@ -361,7 +361,7 @@ Test patterns: $ hg debugwalk glob:\* - matcher: <matcher files=['.'], patterns='(?:[^/]*$)', includes=None> + matcher: <matcher patterns='(?:[^/]*$)', includes=None> f fennel fennel f fenugreek fenugreek f fiddlehead fiddlehead @@ -371,19 +371,19 @@ adding glob:glob warning: filename contains ':', which is reserved on Windows: 'glob:glob' $ hg debugwalk glob:\* - matcher: <matcher files=['.'], patterns='(?:[^/]*$)', includes=None> + matcher: <matcher patterns='(?:[^/]*$)', includes=None> f fennel fennel f fenugreek fenugreek f fiddlehead fiddlehead f glob:glob glob:glob $ hg debugwalk glob:glob - matcher: <matcher files=['glob'], patterns='(?:glob$)', includes=None> + matcher: <matcher patterns='(?:glob$)', includes=None> glob: No such file or directory $ hg debugwalk glob:glob:glob - matcher: <matcher files=['glob:glob'], patterns='(?:glob\\:glob$)', includes=None> + matcher: <matcher patterns='(?:glob\\:glob$)', includes=None> f glob:glob glob:glob exact $ hg debugwalk path:glob:glob - matcher: <matcher files=['glob:glob'], patterns='(?:^glob\\:glob(?:/|$))', includes=None> + matcher: <matcher patterns='(?:^glob\\:glob(?:/|$))', includes=None> f glob:glob glob:glob exact $ rm glob:glob $ hg addremove @@ -391,38 +391,38 @@ #endif $ hg debugwalk 'glob:**e' - matcher: <matcher files=['.'], patterns='(?:.*e$)', includes=None> + matcher: <matcher patterns='(?:.*e$)', includes=None> f beans/turtle beans/turtle f mammals/Procyonidae/cacomistle mammals/Procyonidae/cacomistle $ hg debugwalk 're:.*[kb]$' - matcher: <matcher files=['.'], patterns='(?:.*[kb]$)', includes=None> + matcher: <matcher patterns='(?:.*[kb]$)', includes=None> f beans/black beans/black f fenugreek fenugreek f mammals/skunk mammals/skunk $ hg debugwalk path:beans/black - matcher: <matcher files=['beans/black'], patterns='(?:^beans\\/black(?:/|$))', includes=None> + matcher: <matcher patterns='(?:^beans\\/black(?:/|$))', includes=None> f beans/black beans/black exact $ hg debugwalk path:beans//black - matcher: <matcher files=['beans/black'], patterns='(?:^beans\\/black(?:/|$))', includes=None> + matcher: <matcher patterns='(?:^beans\\/black(?:/|$))', includes=None> f beans/black beans/black exact $ hg debugwalk relglob:Procyonidae - matcher: <matcher files=['.'], patterns='(?:(?:|.*/)Procyonidae$)', includes=None> + matcher: <matcher patterns='(?:(?:|.*/)Procyonidae$)', includes=None> $ hg debugwalk 'relglob:Procyonidae/**' - matcher: <matcher files=['.'], patterns='(?:(?:|.*/)Procyonidae\\/.*$)', includes=None> + matcher: <matcher patterns='(?:(?:|.*/)Procyonidae\\/.*$)', includes=None> f mammals/Procyonidae/cacomistle mammals/Procyonidae/cacomistle f mammals/Procyonidae/coatimundi mammals/Procyonidae/coatimundi f mammals/Procyonidae/raccoon mammals/Procyonidae/raccoon $ hg debugwalk 'relglob:Procyonidae/**' fennel - matcher: <matcher files=['.', 'fennel'], patterns='(?:(?:|.*/)Procyonidae\\/.*$|fennel(?:/|$))', includes=None> + matcher: <matcher patterns='(?:(?:|.*/)Procyonidae\\/.*$|fennel(?:/|$))', includes=None> f fennel fennel exact f mammals/Procyonidae/cacomistle mammals/Procyonidae/cacomistle f mammals/Procyonidae/coatimundi mammals/Procyonidae/coatimundi f mammals/Procyonidae/raccoon mammals/Procyonidae/raccoon $ hg debugwalk beans 'glob:beans/*' - matcher: <matcher files=['beans', 'beans'], patterns='(?:beans(?:/|$)|beans\\/[^/]*$)', includes=None> + matcher: <matcher patterns='(?:beans(?:/|$)|beans\\/[^/]*$)', includes=None> f beans/black beans/black f beans/borlotti beans/borlotti f beans/kidney beans/kidney @@ -430,78 +430,78 @@ f beans/pinto beans/pinto f beans/turtle beans/turtle $ hg debugwalk 'glob:mamm**' - matcher: <matcher files=['.'], patterns='(?:mamm.*$)', includes=None> + matcher: <matcher patterns='(?:mamm.*$)', includes=None> f mammals/Procyonidae/cacomistle mammals/Procyonidae/cacomistle f mammals/Procyonidae/coatimundi mammals/Procyonidae/coatimundi f mammals/Procyonidae/raccoon mammals/Procyonidae/raccoon f mammals/skunk mammals/skunk $ hg debugwalk 'glob:mamm**' fennel - matcher: <matcher files=['.', 'fennel'], patterns='(?:mamm.*$|fennel(?:/|$))', includes=None> + matcher: <matcher patterns='(?:mamm.*$|fennel(?:/|$))', includes=None> f fennel fennel exact f mammals/Procyonidae/cacomistle mammals/Procyonidae/cacomistle f mammals/Procyonidae/coatimundi mammals/Procyonidae/coatimundi f mammals/Procyonidae/raccoon mammals/Procyonidae/raccoon f mammals/skunk mammals/skunk $ hg debugwalk 'glob:j*' - matcher: <matcher files=['.'], patterns='(?:j[^/]*$)', includes=None> + matcher: <matcher patterns='(?:j[^/]*$)', includes=None> $ hg debugwalk NOEXIST - matcher: <matcher files=['NOEXIST'], patterns='(?:NOEXIST(?:/|$))', includes=None> + matcher: <matcher patterns='(?:NOEXIST(?:/|$))', includes=None> NOEXIST: * (glob) #if fifo $ mkfifo fifo $ hg debugwalk fifo - matcher: <matcher files=['fifo'], patterns='(?:fifo(?:/|$))', includes=None> + matcher: <matcher patterns='(?:fifo(?:/|$))', includes=None> fifo: unsupported file type (type is fifo) #endif $ rm fenugreek $ hg debugwalk fenugreek - matcher: <matcher files=['fenugreek'], patterns='(?:fenugreek(?:/|$))', includes=None> + matcher: <matcher patterns='(?:fenugreek(?:/|$))', includes=None> f fenugreek fenugreek exact $ hg rm fenugreek $ hg debugwalk fenugreek - matcher: <matcher files=['fenugreek'], patterns='(?:fenugreek(?:/|$))', includes=None> + matcher: <matcher patterns='(?:fenugreek(?:/|$))', includes=None> f fenugreek fenugreek exact $ touch new $ hg debugwalk new - matcher: <matcher files=['new'], patterns='(?:new(?:/|$))', includes=None> + matcher: <matcher patterns='(?:new(?:/|$))', includes=None> f new new exact $ mkdir ignored $ touch ignored/file $ echo '^ignored$' > .hgignore $ hg debugwalk ignored - matcher: <matcher files=['ignored'], patterns='(?:ignored(?:/|$))', includes=None> + matcher: <matcher patterns='(?:ignored(?:/|$))', includes=None> $ hg debugwalk ignored/file - matcher: <matcher files=['ignored/file'], patterns='(?:ignored\\/file(?:/|$))', includes=None> + matcher: <matcher patterns='(?:ignored\\/file(?:/|$))', includes=None> f ignored/file ignored/file exact Test listfile and listfile0 $ $PYTHON -c "file('listfile0', 'wb').write('fenugreek\0new\0')" $ hg debugwalk -I 'listfile0:listfile0' - matcher: <matcher files=[], patterns=None, includes='(?:fenugreek(?:/|$)|new(?:/|$))'> + matcher: <matcher patterns=None, includes='(?:fenugreek(?:/|$)|new(?:/|$))'> f fenugreek fenugreek f new new $ $PYTHON -c "file('listfile', 'wb').write('fenugreek\nnew\r\nmammals/skunk\n')" $ hg debugwalk -I 'listfile:listfile' - matcher: <matcher files=[], patterns=None, includes='(?:fenugreek(?:/|$)|new(?:/|$)|mammals\\/skunk(?:/|$))'> + matcher: <matcher patterns=None, includes='(?:fenugreek(?:/|$)|new(?:/|$)|mammals\\/skunk(?:/|$))'> f fenugreek fenugreek f mammals/skunk mammals/skunk f new new $ cd .. $ hg debugwalk -R t t/mammals/skunk - matcher: <matcher files=['mammals/skunk'], patterns='(?:mammals\\/skunk(?:/|$))', includes=None> + matcher: <matcher patterns='(?:mammals\\/skunk(?:/|$))', includes=None> f mammals/skunk t/mammals/skunk exact $ mkdir t2 $ cd t2 $ hg debugwalk -R ../t ../t/mammals/skunk - matcher: <matcher files=['mammals/skunk'], patterns='(?:mammals\\/skunk(?:/|$))', includes=None> + matcher: <matcher patterns='(?:mammals\\/skunk(?:/|$))', includes=None> f mammals/skunk ../t/mammals/skunk exact $ hg debugwalk --cwd ../t mammals/skunk - matcher: <matcher files=['mammals/skunk'], patterns='(?:mammals\\/skunk(?:/|$))', includes=None> + matcher: <matcher patterns='(?:mammals\\/skunk(?:/|$))', includes=None> f mammals/skunk mammals/skunk exact $ cd ..