##// END OF EJS Templates
cleanup: migrate from re.escape to stringutil.reescape...
Augie Fackler -
r38494:67dc32d4 @56 default
parent child Browse files
Show More
@@ -245,7 +245,7 b' class kwtemplater(object):'
245 @util.propertycache
245 @util.propertycache
246 def escape(self):
246 def escape(self):
247 '''Returns bar-separated and escaped keywords.'''
247 '''Returns bar-separated and escaped keywords.'''
248 return '|'.join(map(re.escape, self.templates.keys()))
248 return '|'.join(map(stringutil.reescape, self.templates.keys()))
249
249
250 @util.propertycache
250 @util.propertycache
251 def rekw(self):
251 def rekw(self):
@@ -56,7 +56,7 b' class gitlfspointer(dict):'
56 _requiredre = {
56 _requiredre = {
57 'size': re.compile(br'\A[0-9]+\Z'),
57 'size': re.compile(br'\A[0-9]+\Z'),
58 'oid': re.compile(br'\Asha256:[0-9a-f]{64}\Z'),
58 'oid': re.compile(br'\Asha256:[0-9a-f]{64}\Z'),
59 'version': re.compile(br'\A%s\Z' % re.escape(VERSION)),
59 'version': re.compile(br'\A%s\Z' % stringutil.reescape(VERSION)),
60 }
60 }
61
61
62 def validate(self):
62 def validate(self):
@@ -766,7 +766,7 b' def getwebsubs(repo):'
766 for key, pattern in websubdefs:
766 for key, pattern in websubdefs:
767 # grab the delimiter from the character after the "s"
767 # grab the delimiter from the character after the "s"
768 unesc = pattern[1:2]
768 unesc = pattern[1:2]
769 delim = re.escape(unesc)
769 delim = stringutil.reescape(unesc)
770
770
771 # identify portions of the pattern, taking care to avoid escaped
771 # identify portions of the pattern, taking care to avoid escaped
772 # delimiters. the replace format and flags are optional, but
772 # delimiters. the replace format and flags are optional, but
@@ -714,7 +714,7 b' def _globre(pat):'
714 >>> bprint(_globre(br'**/a'))
714 >>> bprint(_globre(br'**/a'))
715 (?:.*/)?a
715 (?:.*/)?a
716 >>> bprint(_globre(br'a/**/b'))
716 >>> bprint(_globre(br'a/**/b'))
717 a\/(?:.*/)?b
717 a/(?:.*/)?b
718 >>> bprint(_globre(br'[a*?!^][^b][!c]'))
718 >>> bprint(_globre(br'[a*?!^][^b][!c]'))
719 [a*?!^][\^b][^c]
719 [a*?!^][\^b][^c]
720 >>> bprint(_globre(br'{a,b}'))
720 >>> bprint(_globre(br'{a,b}'))
@@ -725,7 +725,7 b' def _globre(pat):'
725 i, n = 0, len(pat)
725 i, n = 0, len(pat)
726 res = ''
726 res = ''
727 group = 0
727 group = 0
728 escape = util.re.escape
728 escape = util.stringutil.reescape
729 def peek():
729 def peek():
730 return i < n and pat[i:i + 1]
730 return i < n and pat[i:i + 1]
731 while i < n:
731 while i < n:
@@ -790,13 +790,13 b' def _regex(kind, pat, globsuffix):'
790 if kind in ('path', 'relpath'):
790 if kind in ('path', 'relpath'):
791 if pat == '.':
791 if pat == '.':
792 return ''
792 return ''
793 return util.re.escape(pat) + '(?:/|$)'
793 return util.stringutil.reescape(pat) + '(?:/|$)'
794 if kind == 'rootfilesin':
794 if kind == 'rootfilesin':
795 if pat == '.':
795 if pat == '.':
796 escaped = ''
796 escaped = ''
797 else:
797 else:
798 # Pattern is a directory name.
798 # Pattern is a directory name.
799 escaped = util.re.escape(pat) + '/'
799 escaped = util.stringutil.reescape(pat) + '/'
800 # Anything after the pattern must be a non-directory.
800 # Anything after the pattern must be a non-directory.
801 return escaped + '[^/]+$'
801 return escaped + '[^/]+$'
802 if kind == 'relglob':
802 if kind == 'relglob':
@@ -22,6 +22,7 b' from . import ('
22 )
22 )
23 from .utils import (
23 from .utils import (
24 procutil,
24 procutil,
25 stringutil,
25 )
26 )
26
27
27 def _serverquote(s):
28 def _serverquote(s):
@@ -273,7 +274,7 b' def _performhandshake(ui, stdin, stdout,'
273
274
274 # Assume version 1 of wire protocol by default.
275 # Assume version 1 of wire protocol by default.
275 protoname = wireprototypes.SSHV1
276 protoname = wireprototypes.SSHV1
276 reupgraded = re.compile(b'^upgraded %s (.*)$' % re.escape(token))
277 reupgraded = re.compile(b'^upgraded %s (.*)$' % stringutil.reescape(token))
277
278
278 lines = ['', 'dummy']
279 lines = ['', 'dummy']
279 max_noise = 500
280 max_noise = 500
@@ -618,14 +618,14 b' def _dnsnamematch(dn, hostname, maxwildc'
618 # The client SHOULD NOT attempt to match a presented identifier
618 # The client SHOULD NOT attempt to match a presented identifier
619 # where the wildcard character is embedded within an A-label or
619 # where the wildcard character is embedded within an A-label or
620 # U-label of an internationalized domain name.
620 # U-label of an internationalized domain name.
621 pats.append(re.escape(leftmost))
621 pats.append(stringutil.reescape(leftmost))
622 else:
622 else:
623 # Otherwise, '*' matches any dotless string, e.g. www*
623 # Otherwise, '*' matches any dotless string, e.g. www*
624 pats.append(re.escape(leftmost).replace(br'\*', '[^.]*'))
624 pats.append(stringutil.reescape(leftmost).replace(br'\*', '[^.]*'))
625
625
626 # add the remaining fragments, ignore any wildcards
626 # add the remaining fragments, ignore any wildcards
627 for frag in remainder:
627 for frag in remainder:
628 pats.append(re.escape(frag))
628 pats.append(stringutil.reescape(frag))
629
629
630 pat = re.compile(br'\A' + br'\.'.join(pats) + br'\Z', re.IGNORECASE)
630 pat = re.compile(br'\A' + br'\.'.join(pats) + br'\Z', re.IGNORECASE)
631 return pat.match(hostname) is not None
631 return pat.match(hostname) is not None
@@ -92,11 +92,11 b''
92 f mammals/skunk skunk
92 f mammals/skunk skunk
93 $ hg debugwalk -v -I '*k'
93 $ hg debugwalk -v -I '*k'
94 * matcher:
94 * matcher:
95 <includematcher includes='(?:mammals\\/[^/]*k(?:/|$))'>
95 <includematcher includes='(?:mammals/[^/]*k(?:/|$))'>
96 f mammals/skunk skunk
96 f mammals/skunk skunk
97 $ hg debugwalk -v -I 'glob:*k'
97 $ hg debugwalk -v -I 'glob:*k'
98 * matcher:
98 * matcher:
99 <includematcher includes='(?:mammals\\/[^/]*k(?:/|$))'>
99 <includematcher includes='(?:mammals/[^/]*k(?:/|$))'>
100 f mammals/skunk skunk
100 f mammals/skunk skunk
101 $ hg debugwalk -v -I 'relglob:*k'
101 $ hg debugwalk -v -I 'relglob:*k'
102 * matcher:
102 * matcher:
@@ -260,7 +260,7 b''
260 f mammals/skunk skunk
260 f mammals/skunk skunk
261 $ hg debugwalk -v Procyonidae
261 $ hg debugwalk -v Procyonidae
262 * matcher:
262 * matcher:
263 <patternmatcher patterns='(?:mammals\\/Procyonidae(?:/|$))'>
263 <patternmatcher patterns='(?:mammals/Procyonidae(?:/|$))'>
264 f mammals/Procyonidae/cacomistle Procyonidae/cacomistle
264 f mammals/Procyonidae/cacomistle Procyonidae/cacomistle
265 f mammals/Procyonidae/coatimundi Procyonidae/coatimundi
265 f mammals/Procyonidae/coatimundi Procyonidae/coatimundi
266 f mammals/Procyonidae/raccoon Procyonidae/raccoon
266 f mammals/Procyonidae/raccoon Procyonidae/raccoon
@@ -268,7 +268,7 b''
268 $ cd Procyonidae
268 $ cd Procyonidae
269 $ hg debugwalk -v .
269 $ hg debugwalk -v .
270 * matcher:
270 * matcher:
271 <patternmatcher patterns='(?:mammals\\/Procyonidae(?:/|$))'>
271 <patternmatcher patterns='(?:mammals/Procyonidae(?:/|$))'>
272 f mammals/Procyonidae/cacomistle cacomistle
272 f mammals/Procyonidae/cacomistle cacomistle
273 f mammals/Procyonidae/coatimundi coatimundi
273 f mammals/Procyonidae/coatimundi coatimundi
274 f mammals/Procyonidae/raccoon raccoon
274 f mammals/Procyonidae/raccoon raccoon
@@ -316,7 +316,7 b''
316 f beans/turtle beans/turtle
316 f beans/turtle beans/turtle
317 $ hg debugwalk -v -I '{*,{b,m}*/*}k'
317 $ hg debugwalk -v -I '{*,{b,m}*/*}k'
318 * matcher:
318 * matcher:
319 <includematcher includes='(?:(?:[^/]*|(?:b|m)[^/]*\\/[^/]*)k(?:/|$))'>
319 <includematcher includes='(?:(?:[^/]*|(?:b|m)[^/]*/[^/]*)k(?:/|$))'>
320 f beans/black beans/black
320 f beans/black beans/black
321 f fenugreek fenugreek
321 f fenugreek fenugreek
322 f mammals/skunk mammals/skunk
322 f mammals/skunk mammals/skunk
@@ -330,25 +330,25 b''
330 <includematcher includes='(?:non\\-existent(?:/|$))'>
330 <includematcher includes='(?:non\\-existent(?:/|$))'>
331 $ hg debugwalk -v -Inon-existent -Ibeans/black
331 $ hg debugwalk -v -Inon-existent -Ibeans/black
332 * matcher:
332 * matcher:
333 <includematcher includes='(?:non\\-existent(?:/|$)|beans\\/black(?:/|$))'>
333 <includematcher includes='(?:non\\-existent(?:/|$)|beans/black(?:/|$))'>
334 f beans/black beans/black
334 f beans/black beans/black
335 $ hg debugwalk -v -Ibeans beans/black
335 $ hg debugwalk -v -Ibeans beans/black
336 * matcher:
336 * matcher:
337 <intersectionmatcher
337 <intersectionmatcher
338 m1=<patternmatcher patterns='(?:beans\\/black(?:/|$))'>,
338 m1=<patternmatcher patterns='(?:beans/black(?:/|$))'>,
339 m2=<includematcher includes='(?:beans(?:/|$))'>>
339 m2=<includematcher includes='(?:beans(?:/|$))'>>
340 f beans/black beans/black exact
340 f beans/black beans/black exact
341 $ hg debugwalk -v -Ibeans/black beans
341 $ hg debugwalk -v -Ibeans/black beans
342 * matcher:
342 * matcher:
343 <intersectionmatcher
343 <intersectionmatcher
344 m1=<patternmatcher patterns='(?:beans(?:/|$))'>,
344 m1=<patternmatcher patterns='(?:beans(?:/|$))'>,
345 m2=<includematcher includes='(?:beans\\/black(?:/|$))'>>
345 m2=<includematcher includes='(?:beans/black(?:/|$))'>>
346 f beans/black beans/black
346 f beans/black beans/black
347 $ hg debugwalk -v -Xbeans/black beans
347 $ hg debugwalk -v -Xbeans/black beans
348 * matcher:
348 * matcher:
349 <differencematcher
349 <differencematcher
350 m1=<patternmatcher patterns='(?:beans(?:/|$))'>,
350 m1=<patternmatcher patterns='(?:beans(?:/|$))'>,
351 m2=<includematcher includes='(?:beans\\/black(?:/|$))'>>
351 m2=<includematcher includes='(?:beans/black(?:/|$))'>>
352 f beans/borlotti beans/borlotti
352 f beans/borlotti beans/borlotti
353 f beans/kidney beans/kidney
353 f beans/kidney beans/kidney
354 f beans/navy beans/navy
354 f beans/navy beans/navy
@@ -358,7 +358,7 b''
358 * matcher:
358 * matcher:
359 <differencematcher
359 <differencematcher
360 m1=<includematcher includes='(?:beans(?:/|$))'>,
360 m1=<includematcher includes='(?:beans(?:/|$))'>,
361 m2=<includematcher includes='(?:beans\\/black(?:/|$))'>>
361 m2=<includematcher includes='(?:beans/black(?:/|$))'>>
362 f beans/borlotti beans/borlotti
362 f beans/borlotti beans/borlotti
363 f beans/kidney beans/kidney
363 f beans/kidney beans/kidney
364 f beans/navy beans/navy
364 f beans/navy beans/navy
@@ -367,33 +367,33 b''
367 $ hg debugwalk -v -Xbeans/black beans/black
367 $ hg debugwalk -v -Xbeans/black beans/black
368 * matcher:
368 * matcher:
369 <differencematcher
369 <differencematcher
370 m1=<patternmatcher patterns='(?:beans\\/black(?:/|$))'>,
370 m1=<patternmatcher patterns='(?:beans/black(?:/|$))'>,
371 m2=<includematcher includes='(?:beans\\/black(?:/|$))'>>
371 m2=<includematcher includes='(?:beans/black(?:/|$))'>>
372 $ hg debugwalk -v -Xbeans/black -Ibeans/black
372 $ hg debugwalk -v -Xbeans/black -Ibeans/black
373 * matcher:
373 * matcher:
374 <differencematcher
374 <differencematcher
375 m1=<includematcher includes='(?:beans\\/black(?:/|$))'>,
375 m1=<includematcher includes='(?:beans/black(?:/|$))'>,
376 m2=<includematcher includes='(?:beans\\/black(?:/|$))'>>
376 m2=<includematcher includes='(?:beans/black(?:/|$))'>>
377 $ hg debugwalk -v -Xbeans beans/black
377 $ hg debugwalk -v -Xbeans beans/black
378 * matcher:
378 * matcher:
379 <differencematcher
379 <differencematcher
380 m1=<patternmatcher patterns='(?:beans\\/black(?:/|$))'>,
380 m1=<patternmatcher patterns='(?:beans/black(?:/|$))'>,
381 m2=<includematcher includes='(?:beans(?:/|$))'>>
381 m2=<includematcher includes='(?:beans(?:/|$))'>>
382 $ hg debugwalk -v -Xbeans -Ibeans/black
382 $ hg debugwalk -v -Xbeans -Ibeans/black
383 * matcher:
383 * matcher:
384 <differencematcher
384 <differencematcher
385 m1=<includematcher includes='(?:beans\\/black(?:/|$))'>,
385 m1=<includematcher includes='(?:beans/black(?:/|$))'>,
386 m2=<includematcher includes='(?:beans(?:/|$))'>>
386 m2=<includematcher includes='(?:beans(?:/|$))'>>
387 $ hg debugwalk -v 'glob:mammals/../beans/b*'
387 $ hg debugwalk -v 'glob:mammals/../beans/b*'
388 * matcher:
388 * matcher:
389 <patternmatcher patterns='(?:beans\\/b[^/]*$)'>
389 <patternmatcher patterns='(?:beans/b[^/]*$)'>
390 f beans/black beans/black
390 f beans/black beans/black
391 f beans/borlotti beans/borlotti
391 f beans/borlotti beans/borlotti
392 $ hg debugwalk -v '-X*/Procyonidae' mammals
392 $ hg debugwalk -v '-X*/Procyonidae' mammals
393 * matcher:
393 * matcher:
394 <differencematcher
394 <differencematcher
395 m1=<patternmatcher patterns='(?:mammals(?:/|$))'>,
395 m1=<patternmatcher patterns='(?:mammals(?:/|$))'>,
396 m2=<includematcher includes='(?:[^/]*\\/Procyonidae(?:/|$))'>>
396 m2=<includematcher includes='(?:[^/]*/Procyonidae(?:/|$))'>>
397 f mammals/skunk mammals/skunk
397 f mammals/skunk mammals/skunk
398 $ hg debugwalk -v path:mammals
398 $ hg debugwalk -v path:mammals
399 * matcher:
399 * matcher:
@@ -436,12 +436,12 b' Test explicit paths and excludes:'
436 $ hg debugwalk -v beans/black -X 'path:beans'
436 $ hg debugwalk -v beans/black -X 'path:beans'
437 * matcher:
437 * matcher:
438 <differencematcher
438 <differencematcher
439 m1=<patternmatcher patterns='(?:beans\\/black(?:/|$))'>,
439 m1=<patternmatcher patterns='(?:beans/black(?:/|$))'>,
440 m2=<includematcher includes='(?:beans(?:/|$))'>>
440 m2=<includematcher includes='(?:beans(?:/|$))'>>
441 $ hg debugwalk -v -I 'path:beans/black' -X 'path:beans'
441 $ hg debugwalk -v -I 'path:beans/black' -X 'path:beans'
442 * matcher:
442 * matcher:
443 <differencematcher
443 <differencematcher
444 m1=<includematcher includes='(?:beans\\/black(?:/|$))'>,
444 m1=<includematcher includes='(?:beans/black(?:/|$))'>,
445 m2=<includematcher includes='(?:beans(?:/|$))'>>
445 m2=<includematcher includes='(?:beans(?:/|$))'>>
446
446
447 Test absolute paths:
447 Test absolute paths:
@@ -485,11 +485,11 b' Test patterns:'
485 glob: $ENOENT$
485 glob: $ENOENT$
486 $ hg debugwalk -v glob:glob:glob
486 $ hg debugwalk -v glob:glob:glob
487 * matcher:
487 * matcher:
488 <patternmatcher patterns='(?:glob\\:glob$)'>
488 <patternmatcher patterns='(?:glob:glob$)'>
489 f glob:glob glob:glob exact
489 f glob:glob glob:glob exact
490 $ hg debugwalk -v path:glob:glob
490 $ hg debugwalk -v path:glob:glob
491 * matcher:
491 * matcher:
492 <patternmatcher patterns='(?:glob\\:glob(?:/|$))'>
492 <patternmatcher patterns='(?:glob:glob(?:/|$))'>
493 f glob:glob glob:glob exact
493 f glob:glob glob:glob exact
494 $ rm glob:glob
494 $ rm glob:glob
495 $ hg addremove
495 $ hg addremove
@@ -511,11 +511,11 b' Test patterns:'
511
511
512 $ hg debugwalk -v path:beans/black
512 $ hg debugwalk -v path:beans/black
513 * matcher:
513 * matcher:
514 <patternmatcher patterns='(?:beans\\/black(?:/|$))'>
514 <patternmatcher patterns='(?:beans/black(?:/|$))'>
515 f beans/black beans/black exact
515 f beans/black beans/black exact
516 $ hg debugwalk -v path:beans//black
516 $ hg debugwalk -v path:beans//black
517 * matcher:
517 * matcher:
518 <patternmatcher patterns='(?:beans\\/black(?:/|$))'>
518 <patternmatcher patterns='(?:beans/black(?:/|$))'>
519 f beans/black beans/black exact
519 f beans/black beans/black exact
520
520
521 $ hg debugwalk -v relglob:Procyonidae
521 $ hg debugwalk -v relglob:Procyonidae
@@ -523,20 +523,20 b' Test patterns:'
523 <patternmatcher patterns='(?:(?:|.*/)Procyonidae$)'>
523 <patternmatcher patterns='(?:(?:|.*/)Procyonidae$)'>
524 $ hg debugwalk -v 'relglob:Procyonidae/**'
524 $ hg debugwalk -v 'relglob:Procyonidae/**'
525 * matcher:
525 * matcher:
526 <patternmatcher patterns='(?:(?:|.*/)Procyonidae\\/.*$)'>
526 <patternmatcher patterns='(?:(?:|.*/)Procyonidae/.*$)'>
527 f mammals/Procyonidae/cacomistle mammals/Procyonidae/cacomistle
527 f mammals/Procyonidae/cacomistle mammals/Procyonidae/cacomistle
528 f mammals/Procyonidae/coatimundi mammals/Procyonidae/coatimundi
528 f mammals/Procyonidae/coatimundi mammals/Procyonidae/coatimundi
529 f mammals/Procyonidae/raccoon mammals/Procyonidae/raccoon
529 f mammals/Procyonidae/raccoon mammals/Procyonidae/raccoon
530 $ hg debugwalk -v 'relglob:Procyonidae/**' fennel
530 $ hg debugwalk -v 'relglob:Procyonidae/**' fennel
531 * matcher:
531 * matcher:
532 <patternmatcher patterns='(?:(?:|.*/)Procyonidae\\/.*$|fennel(?:/|$))'>
532 <patternmatcher patterns='(?:(?:|.*/)Procyonidae/.*$|fennel(?:/|$))'>
533 f fennel fennel exact
533 f fennel fennel exact
534 f mammals/Procyonidae/cacomistle mammals/Procyonidae/cacomistle
534 f mammals/Procyonidae/cacomistle mammals/Procyonidae/cacomistle
535 f mammals/Procyonidae/coatimundi mammals/Procyonidae/coatimundi
535 f mammals/Procyonidae/coatimundi mammals/Procyonidae/coatimundi
536 f mammals/Procyonidae/raccoon mammals/Procyonidae/raccoon
536 f mammals/Procyonidae/raccoon mammals/Procyonidae/raccoon
537 $ hg debugwalk -v beans 'glob:beans/*'
537 $ hg debugwalk -v beans 'glob:beans/*'
538 * matcher:
538 * matcher:
539 <patternmatcher patterns='(?:beans(?:/|$)|beans\\/[^/]*$)'>
539 <patternmatcher patterns='(?:beans(?:/|$)|beans/[^/]*$)'>
540 f beans/black beans/black
540 f beans/black beans/black
541 f beans/borlotti beans/borlotti
541 f beans/borlotti beans/borlotti
542 f beans/kidney beans/kidney
542 f beans/kidney beans/kidney
@@ -598,7 +598,7 b' Test patterns:'
598 <patternmatcher patterns='(?:ignored(?:/|$))'>
598 <patternmatcher patterns='(?:ignored(?:/|$))'>
599 $ hg debugwalk -v ignored/file
599 $ hg debugwalk -v ignored/file
600 * matcher:
600 * matcher:
601 <patternmatcher patterns='(?:ignored\\/file(?:/|$))'>
601 <patternmatcher patterns='(?:ignored/file(?:/|$))'>
602 f ignored/file ignored/file exact
602 f ignored/file ignored/file exact
603
603
604 Test listfile and listfile0
604 Test listfile and listfile0
@@ -612,7 +612,7 b' Test listfile and listfile0'
612 $ $PYTHON -c "open('listfile', 'wb').write(b'fenugreek\nnew\r\nmammals/skunk\n')"
612 $ $PYTHON -c "open('listfile', 'wb').write(b'fenugreek\nnew\r\nmammals/skunk\n')"
613 $ hg debugwalk -v -I 'listfile:listfile'
613 $ hg debugwalk -v -I 'listfile:listfile'
614 * matcher:
614 * matcher:
615 <includematcher includes='(?:fenugreek(?:/|$)|new(?:/|$)|mammals\\/skunk(?:/|$))'>
615 <includematcher includes='(?:fenugreek(?:/|$)|new(?:/|$)|mammals/skunk(?:/|$))'>
616 f fenugreek fenugreek
616 f fenugreek fenugreek
617 f mammals/skunk mammals/skunk
617 f mammals/skunk mammals/skunk
618 f new new
618 f new new
@@ -620,17 +620,17 b' Test listfile and listfile0'
620 $ cd ..
620 $ cd ..
621 $ hg debugwalk -v -R t t/mammals/skunk
621 $ hg debugwalk -v -R t t/mammals/skunk
622 * matcher:
622 * matcher:
623 <patternmatcher patterns='(?:mammals\\/skunk(?:/|$))'>
623 <patternmatcher patterns='(?:mammals/skunk(?:/|$))'>
624 f mammals/skunk t/mammals/skunk exact
624 f mammals/skunk t/mammals/skunk exact
625 $ mkdir t2
625 $ mkdir t2
626 $ cd t2
626 $ cd t2
627 $ hg debugwalk -v -R ../t ../t/mammals/skunk
627 $ hg debugwalk -v -R ../t ../t/mammals/skunk
628 * matcher:
628 * matcher:
629 <patternmatcher patterns='(?:mammals\\/skunk(?:/|$))'>
629 <patternmatcher patterns='(?:mammals/skunk(?:/|$))'>
630 f mammals/skunk ../t/mammals/skunk exact
630 f mammals/skunk ../t/mammals/skunk exact
631 $ hg debugwalk -v --cwd ../t mammals/skunk
631 $ hg debugwalk -v --cwd ../t mammals/skunk
632 * matcher:
632 * matcher:
633 <patternmatcher patterns='(?:mammals\\/skunk(?:/|$))'>
633 <patternmatcher patterns='(?:mammals/skunk(?:/|$))'>
634 f mammals/skunk mammals/skunk exact
634 f mammals/skunk mammals/skunk exact
635
635
636 $ cd ..
636 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now