--- a/mercurial/match.py Tue May 16 16:36:48 2017 -0700
+++ b/mercurial/match.py Tue May 16 22:15:42 2017 -0700
@@ -142,12 +142,12 @@
kindpats.append((kind, pats, source))
return kindpats
- m = matcher(root, cwd, normalize, patterns, include=include, exclude=None,
+ m = matcher(root, cwd, normalize, patterns, include=include,
default=default, exact=exact, auditor=auditor, ctx=ctx,
listsubrepos=listsubrepos, warn=warn, badfn=badfn)
if exclude:
- em = matcher(root, cwd, normalize, [], include=exclude, exclude=None,
- default=default, exact=False, auditor=auditor, ctx=ctx,
+ em = matcher(root, cwd, normalize, [], include=exclude, default=default,
+ exact=False, auditor=auditor, ctx=ctx,
listsubrepos=listsubrepos, warn=warn, badfn=None)
m = differencematcher(m, em)
return m
@@ -305,25 +305,21 @@
class matcher(basematcher):
def __init__(self, root, cwd, normalize, patterns, include=None,
- exclude=None, default='glob', exact=False, auditor=None,
- ctx=None, listsubrepos=False, warn=None, badfn=None):
+ default='glob', exact=False, auditor=None, ctx=None,
+ listsubrepos=False, warn=None, badfn=None):
super(matcher, self).__init__(root, cwd, badfn)
if include is None:
include = []
- if exclude is None:
- exclude = []
- self._anypats = bool(include or exclude)
+ self._anypats = bool(include)
self._anyincludepats = False
self._always = False
- self._pathrestricted = bool(include or exclude or patterns)
+ self._pathrestricted = bool(include or patterns)
self.patternspat = None
self.includepat = None
- self.excludepat = None
- # roots are directories which are recursively included/excluded.
+ # roots are directories which are recursively included.
self._includeroots = set()
- self._excluderoots = set()
# dirs are directories which are non-recursively included.
self._includedirs = set()
@@ -337,18 +333,6 @@
self._includeroots.update(roots)
self._includedirs.update(dirs)
matchfns.append(im)
- if exclude:
- kindpats = normalize(exclude, 'glob', root, cwd, auditor, warn)
- self.excludepat, em = _buildmatch(ctx, kindpats, '(?:/|$)',
- listsubrepos, root)
- if not _anypats(kindpats):
- # Only consider recursive excludes as such - if a non-recursive
- # exclude is used, we must still recurse into the excluded
- # directory, at least to find subdirectories. In such a case,
- # the regex still won't match the non-recursively-excluded
- # files.
- self._excluderoots.update(_roots(kindpats))
- matchfns.append(lambda f: not em(f))
if exact:
if isinstance(patterns, list):
self._files = patterns
@@ -388,11 +372,8 @@
def visitdir(self, dir):
if self.prefix() and dir in self._fileset:
return 'all'
- if dir in self._excluderoots:
- return False
if self._includeroots or self._includedirs:
if (not self._anyincludepats and
- not self._excluderoots and
dir in self._includeroots):
# The condition above is essentially self.prefix() for includes
return 'all'
@@ -419,9 +400,8 @@
return self.matchfn == self.exact
def __repr__(self):
- return ('<matcher files=%r, patterns=%r, includes=%r, excludes=%r>' %
- (self._files, self.patternspat, self.includepat,
- self.excludepat))
+ return ('<matcher files=%r, patterns=%r, includes=%r>' %
+ (self._files, self.patternspat, self.includepat))
class differencematcher(basematcher):
'''Composes two matchers by matching if the first matches and the second
--- a/tests/test-walk.t Tue May 16 16:36:48 2017 -0700
+++ b/tests/test-walk.t Tue May 16 22:15:42 2017 -0700
@@ -29,7 +29,7 @@
$ hg commit -m "commit #0"
$ hg debugwalk
- matcher: <matcher files=[], patterns=None, includes=None, excludes=None>
+ matcher: <matcher files=[], 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='(?:)', excludes=None>
+ matcher: <matcher files=[], 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, excludes=None>
+ matcher: <matcher files=[], 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, excludes=None>, m2=<matcher files=[], patterns=None, includes='(?:beans(?:/|$))', excludes=None>>
+ matcher: <differencematcher m1=<matcher files=[], patterns=None, includes=None>, m2=<matcher files=[], 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(?:/|$))', excludes=None>
+ matcher: <matcher files=[], patterns=None, includes='(?:mammals\\/[^/]*k(?:/|$))'>
f mammals/skunk skunk
$ hg debugwalk -I 'glob:*k'
- matcher: <matcher files=[], patterns=None, includes='(?:mammals\\/[^/]*k(?:/|$))', excludes=None>
+ matcher: <matcher files=[], patterns=None, includes='(?:mammals\\/[^/]*k(?:/|$))'>
f mammals/skunk skunk
$ hg debugwalk -I 'relglob:*k'
- matcher: <matcher files=[], patterns=None, includes='(?:(?:|.*/)[^/]*k(?:/|$))', excludes=None>
+ matcher: <matcher files=[], patterns=None, includes='(?:(?:|.*/)[^/]*k(?:/|$))'>
f beans/black ../beans/black
f fenugreek ../fenugreek
f mammals/skunk skunk
$ hg debugwalk -I 'relglob:*k' .
- matcher: <matcher files=['mammals'], patterns='(?:mammals(?:/|$))', includes='(?:(?:|.*/)[^/]*k(?:/|$))', excludes=None>
+ matcher: <matcher files=['mammals'], patterns='(?:mammals(?:/|$))', includes='(?:(?:|.*/)[^/]*k(?:/|$))'>
f mammals/skunk skunk
$ hg debugwalk -I 're:.*k$'
- matcher: <matcher files=[], patterns=None, includes='(?:.*k$)', excludes=None>
+ matcher: <matcher files=[], 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$)', excludes=None>
+ matcher: <matcher files=[], 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(?:/|$))', excludes=None>
+ matcher: <matcher files=[], 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(?:/|$))', excludes=None>
+ matcher: <matcher files=[], 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, excludes=None>
+ matcher: <matcher files=[], patterns='(?:^[^/]+$)', includes=None>
f fennel ../fennel
f fenugreek ../fenugreek
f fiddlehead ../fiddlehead
$ hg debugwalk -I 'rootfilesin:'
- matcher: <matcher files=[], patterns=None, includes='(?:^[^/]+$)', excludes=None>
+ matcher: <matcher files=[], patterns=None, includes='(?:^[^/]+$)'>
f fennel ../fennel
f fenugreek ../fenugreek
f fiddlehead ../fiddlehead
$ hg debugwalk 'rootfilesin:.'
- matcher: <matcher files=[], patterns='(?:^[^/]+$)', includes=None, excludes=None>
+ matcher: <matcher files=[], patterns='(?:^[^/]+$)', includes=None>
f fennel ../fennel
f fenugreek ../fenugreek
f fiddlehead ../fiddlehead
$ hg debugwalk -I 'rootfilesin:.'
- matcher: <matcher files=[], patterns=None, includes='(?:^[^/]+$)', excludes=None>
+ matcher: <matcher files=[], 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, excludes=None>, m2=<matcher files=[], patterns=None, includes='(?:^[^/]+$)', excludes=None>>
+ matcher: <differencematcher m1=<matcher files=[], patterns=None, includes=None>, m2=<matcher files=[], 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, excludes=None>
+ matcher: <matcher files=[], patterns='(?:^fennel/[^/]+$)', includes=None>
$ hg debugwalk -I 'rootfilesin:fennel'
- matcher: <matcher files=[], patterns=None, includes='(?:^fennel/[^/]+$)', excludes=None>
+ matcher: <matcher files=[], patterns=None, includes='(?:^fennel/[^/]+$)'>
$ hg debugwalk 'rootfilesin:skunk'
- matcher: <matcher files=[], patterns='(?:^skunk/[^/]+$)', includes=None, excludes=None>
+ matcher: <matcher files=[], patterns='(?:^skunk/[^/]+$)', includes=None>
$ hg debugwalk -I 'rootfilesin:skunk'
- matcher: <matcher files=[], patterns=None, includes='(?:^skunk/[^/]+$)', excludes=None>
+ matcher: <matcher files=[], patterns=None, includes='(?:^skunk/[^/]+$)'>
$ hg debugwalk 'rootfilesin:beans'
- matcher: <matcher files=[], patterns='(?:^beans/[^/]+$)', includes=None, excludes=None>
+ matcher: <matcher files=[], 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/[^/]+$)', excludes=None>
+ matcher: <matcher files=[], 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, excludes=None>
+ matcher: <matcher files=[], patterns='(?:^mammals/[^/]+$)', includes=None>
f mammals/skunk skunk
$ hg debugwalk -I 'rootfilesin:mammals'
- matcher: <matcher files=[], patterns=None, includes='(?:^mammals/[^/]+$)', excludes=None>
+ matcher: <matcher files=[], patterns=None, includes='(?:^mammals/[^/]+$)'>
f mammals/skunk skunk
$ hg debugwalk 'rootfilesin:mammals/'
- matcher: <matcher files=[], patterns='(?:^mammals/[^/]+$)', includes=None, excludes=None>
+ matcher: <matcher files=[], patterns='(?:^mammals/[^/]+$)', includes=None>
f mammals/skunk skunk
$ hg debugwalk -I 'rootfilesin:mammals/'
- matcher: <matcher files=[], patterns=None, includes='(?:^mammals/[^/]+$)', excludes=None>
+ matcher: <matcher files=[], patterns=None, includes='(?:^mammals/[^/]+$)'>
f mammals/skunk skunk
$ hg debugwalk -X 'rootfilesin:mammals'
- matcher: <differencematcher m1=<matcher files=[], patterns=None, includes=None, excludes=None>, m2=<matcher files=[], patterns=None, includes='(?:^mammals/[^/]+$)', excludes=None>>
+ matcher: <differencematcher m1=<matcher files=[], patterns=None, includes=None>, m2=<matcher files=[], 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, excludes=None>
+ matcher: <matcher files=['mammals'], 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(?:/|$))', excludes=None>
+ matcher: <matcher files=[], 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, excludes=None>
+ matcher: <matcher files=['mammals/Procyonidae'], 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, excludes=None>
+ matcher: <matcher files=['mammals/Procyonidae'], 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, excludes=None>
+ matcher: <matcher files=['mammals'], 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, excludes=None>
+ matcher: <matcher files=['beans'], 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, excludes=None>
+ matcher: <matcher files=['mammals'], 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(?:/|$))', excludes=None>
+ matcher: <matcher files=[], 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(?:/|$))', excludes=None>
+ matcher: <matcher files=[], patterns=None, includes='(?:(?:[^/]*|(?:b|m)[^/]*\\/[^/]*)k(?:/|$))'>
f beans/black beans/black
f fenugreek fenugreek
f mammals/skunk mammals/skunk
$ hg debugwalk -Ibeans mammals
- matcher: <matcher files=['mammals'], patterns='(?:mammals(?:/|$))', includes='(?:beans(?:/|$))', excludes=None>
+ matcher: <matcher files=['mammals'], patterns='(?:mammals(?:/|$))', includes='(?:beans(?:/|$))'>
$ hg debugwalk -Inon-existent
- matcher: <matcher files=[], patterns=None, includes='(?:non\\-existent(?:/|$))', excludes=None>
+ matcher: <matcher files=[], patterns=None, includes='(?:non\\-existent(?:/|$))'>
$ hg debugwalk -Inon-existent -Ibeans/black
- matcher: <matcher files=[], patterns=None, includes='(?:non\\-existent(?:/|$)|beans\\/black(?:/|$))', excludes=None>
+ matcher: <matcher files=[], patterns=None, includes='(?:non\\-existent(?:/|$)|beans\\/black(?:/|$))'>
f beans/black beans/black
$ hg debugwalk -Ibeans beans/black
- matcher: <matcher files=['beans/black'], patterns='(?:beans\\/black(?:/|$))', includes='(?:beans(?:/|$))', excludes=None>
+ matcher: <matcher files=['beans/black'], patterns='(?:beans\\/black(?:/|$))', includes='(?:beans(?:/|$))'>
f beans/black beans/black exact
$ hg debugwalk -Ibeans/black beans
- matcher: <matcher files=['beans'], patterns='(?:beans(?:/|$))', includes='(?:beans\\/black(?:/|$))', excludes=None>
+ matcher: <matcher files=['beans'], patterns='(?:beans(?:/|$))', includes='(?:beans\\/black(?:/|$))'>
f beans/black beans/black
$ hg debugwalk -Xbeans/black beans
- matcher: <differencematcher m1=<matcher files=['beans'], patterns='(?:beans(?:/|$))', includes=None, excludes=None>, m2=<matcher files=[], patterns=None, includes='(?:beans\\/black(?:/|$))', excludes=None>>
+ matcher: <differencematcher m1=<matcher files=['beans'], patterns='(?:beans(?:/|$))', includes=None>, m2=<matcher files=[], 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(?:/|$))', excludes=None>, m2=<matcher files=[], patterns=None, includes='(?:beans\\/black(?:/|$))', excludes=None>>
+ matcher: <differencematcher m1=<matcher files=[], patterns=None, includes='(?:beans(?:/|$))'>, m2=<matcher files=[], 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, excludes=None>, m2=<matcher files=[], patterns=None, includes='(?:beans\\/black(?:/|$))', excludes=None>>
+ matcher: <differencematcher m1=<matcher files=['beans/black'], patterns='(?:beans\\/black(?:/|$))', includes=None>, m2=<matcher files=[], 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(?:/|$))', excludes=None>, m2=<matcher files=[], patterns=None, includes='(?:beans\\/black(?:/|$))', excludes=None>>
+ matcher: <differencematcher m1=<matcher files=[], patterns=None, includes='(?:beans\\/black(?:/|$))'>, m2=<matcher files=[], patterns=None, includes='(?:beans\\/black(?:/|$))'>>
$ hg debugwalk -Xbeans beans/black
- matcher: <differencematcher m1=<matcher files=['beans/black'], patterns='(?:beans\\/black(?:/|$))', includes=None, excludes=None>, m2=<matcher files=[], patterns=None, includes='(?:beans(?:/|$))', excludes=None>>
+ matcher: <differencematcher m1=<matcher files=['beans/black'], patterns='(?:beans\\/black(?:/|$))', includes=None>, m2=<matcher files=[], 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(?:/|$))', excludes=None>, m2=<matcher files=[], patterns=None, includes='(?:beans(?:/|$))', excludes=None>>
+ matcher: <differencematcher m1=<matcher files=[], patterns=None, includes='(?:beans\\/black(?:/|$))'>, m2=<matcher files=[], patterns=None, includes='(?:beans(?:/|$))'>>
$ hg debugwalk 'glob:mammals/../beans/b*'
- matcher: <matcher files=['beans'], patterns='(?:beans\\/b[^/]*$)', includes=None, excludes=None>
+ matcher: <matcher files=['beans'], 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, excludes=None>, m2=<matcher files=[], patterns=None, includes='(?:[^/]*\\/Procyonidae(?:/|$))', excludes=None>>
+ matcher: <differencematcher m1=<matcher files=['mammals'], patterns='(?:mammals(?:/|$))', includes=None>, m2=<matcher files=[], patterns=None, includes='(?:[^/]*\\/Procyonidae(?:/|$))'>>
f mammals/skunk mammals/skunk
$ hg debugwalk path:mammals
- matcher: <matcher files=['mammals'], patterns='(?:^mammals(?:/|$))', includes=None, excludes=None>
+ matcher: <matcher files=['mammals'], 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, excludes=None>
+ matcher: <matcher files=['beans'], 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, excludes=None>
+ matcher: <matcher files=['.'], 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, excludes=None>
+ matcher: <matcher files=['.'], 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, excludes=None>
+ matcher: <matcher files=['glob'], 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, excludes=None>
+ matcher: <matcher files=['glob:glob'], 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, excludes=None>
+ matcher: <matcher files=['glob:glob'], 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, excludes=None>
+ matcher: <matcher files=['.'], 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, excludes=None>
+ matcher: <matcher files=['.'], 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, excludes=None>
+ matcher: <matcher files=['beans/black'], 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, excludes=None>
+ matcher: <matcher files=['beans/black'], patterns='(?:^beans\\/black(?:/|$))', includes=None>
f beans/black beans/black exact
$ hg debugwalk relglob:Procyonidae
- matcher: <matcher files=['.'], patterns='(?:(?:|.*/)Procyonidae$)', includes=None, excludes=None>
+ matcher: <matcher files=['.'], patterns='(?:(?:|.*/)Procyonidae$)', includes=None>
$ hg debugwalk 'relglob:Procyonidae/**'
- matcher: <matcher files=['.'], patterns='(?:(?:|.*/)Procyonidae\\/.*$)', includes=None, excludes=None>
+ matcher: <matcher files=['.'], 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, excludes=None>
+ matcher: <matcher files=['.', 'fennel'], 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, excludes=None>
+ matcher: <matcher files=['beans', 'beans'], 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, excludes=None>
+ matcher: <matcher files=['.'], 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, excludes=None>
+ matcher: <matcher files=['.', 'fennel'], 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, excludes=None>
+ matcher: <matcher files=['.'], patterns='(?:j[^/]*$)', includes=None>
$ hg debugwalk NOEXIST
- matcher: <matcher files=['NOEXIST'], patterns='(?:NOEXIST(?:/|$))', includes=None, excludes=None>
+ matcher: <matcher files=['NOEXIST'], patterns='(?:NOEXIST(?:/|$))', includes=None>
NOEXIST: * (glob)
#if fifo
$ mkfifo fifo
$ hg debugwalk fifo
- matcher: <matcher files=['fifo'], patterns='(?:fifo(?:/|$))', includes=None, excludes=None>
+ matcher: <matcher files=['fifo'], 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, excludes=None>
+ matcher: <matcher files=['fenugreek'], patterns='(?:fenugreek(?:/|$))', includes=None>
f fenugreek fenugreek exact
$ hg rm fenugreek
$ hg debugwalk fenugreek
- matcher: <matcher files=['fenugreek'], patterns='(?:fenugreek(?:/|$))', includes=None, excludes=None>
+ matcher: <matcher files=['fenugreek'], patterns='(?:fenugreek(?:/|$))', includes=None>
f fenugreek fenugreek exact
$ touch new
$ hg debugwalk new
- matcher: <matcher files=['new'], patterns='(?:new(?:/|$))', includes=None, excludes=None>
+ matcher: <matcher files=['new'], 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, excludes=None>
+ matcher: <matcher files=['ignored'], patterns='(?:ignored(?:/|$))', includes=None>
$ hg debugwalk ignored/file
- matcher: <matcher files=['ignored/file'], patterns='(?:ignored\\/file(?:/|$))', includes=None, excludes=None>
+ matcher: <matcher files=['ignored/file'], 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(?:/|$))', excludes=None>
+ matcher: <matcher files=[], 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(?:/|$))', excludes=None>
+ matcher: <matcher files=[], 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, excludes=None>
+ matcher: <matcher files=['mammals/skunk'], 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, excludes=None>
+ matcher: <matcher files=['mammals/skunk'], 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, excludes=None>
+ matcher: <matcher files=['mammals/skunk'], patterns='(?:mammals\\/skunk(?:/|$))', includes=None>
f mammals/skunk mammals/skunk exact
$ cd ..