Show More
@@ -427,7 +427,7 b' def _matcher(canonroot, cwd, names, inc,' | |||||
427 | if c in _globchars: return True |
|
427 | if c in _globchars: return True | |
428 | return False |
|
428 | return False | |
429 |
|
429 | |||
430 |
def regex(kind, name |
|
430 | def regex(kind, name): | |
431 | '''convert a pattern into a regular expression''' |
|
431 | '''convert a pattern into a regular expression''' | |
432 | if not name: |
|
432 | if not name: | |
433 | return '' |
|
433 | return '' | |
@@ -443,16 +443,16 b' def _matcher(canonroot, cwd, names, inc,' | |||||
443 | if name.startswith('^'): |
|
443 | if name.startswith('^'): | |
444 | return name |
|
444 | return name | |
445 | return '.*' + name |
|
445 | return '.*' + name | |
446 |
return globre(name, '', |
|
446 | return globre(name, '', '(?:/|$)') | |
447 |
|
447 | |||
448 |
def matchfn(pats |
|
448 | def matchfn(pats): | |
449 | """build a matching function from a set of patterns""" |
|
449 | """build a matching function from a set of patterns""" | |
450 | if not pats: |
|
450 | if not pats: | |
451 | return |
|
451 | return | |
452 | matches = [] |
|
452 | matches = [] | |
453 | for k, p in pats: |
|
453 | for k, p in pats: | |
454 | try: |
|
454 | try: | |
455 |
pat = '(?:%s)' % regex(k, p |
|
455 | pat = '(?:%s)' % regex(k, p) | |
456 | matches.append(re.compile(pat).match) |
|
456 | matches.append(re.compile(pat).match) | |
457 | except re.error: |
|
457 | except re.error: | |
458 | if src: raise Abort("%s: invalid pattern (%s): %s" % (src, k, p)) |
|
458 | if src: raise Abort("%s: invalid pattern (%s): %s" % (src, k, p)) | |
@@ -500,15 +500,15 b' def _matcher(canonroot, cwd, names, inc,' | |||||
500 |
|
500 | |||
501 | roots, pats, anypats = normalizepats(names, dflt_pat) |
|
501 | roots, pats, anypats = normalizepats(names, dflt_pat) | |
502 |
|
502 | |||
503 |
patmatch = matchfn(pats |
|
503 | patmatch = matchfn(pats) or always | |
504 | incmatch = always |
|
504 | incmatch = always | |
505 | if inc: |
|
505 | if inc: | |
506 | dummy, inckinds, dummy = normalizepats(inc, 'glob') |
|
506 | dummy, inckinds, dummy = normalizepats(inc, 'glob') | |
507 |
incmatch = matchfn(inckinds |
|
507 | incmatch = matchfn(inckinds) | |
508 | excmatch = lambda fn: False |
|
508 | excmatch = lambda fn: False | |
509 | if exc: |
|
509 | if exc: | |
510 | dummy, exckinds, dummy = normalizepats(exc, 'glob') |
|
510 | dummy, exckinds, dummy = normalizepats(exc, 'glob') | |
511 |
excmatch = matchfn(exckinds |
|
511 | excmatch = matchfn(exckinds) | |
512 |
|
512 | |||
513 | if not names and inc and not exc: |
|
513 | if not names and inc and not exc: | |
514 | # common case: hgignore patterns |
|
514 | # common case: hgignore patterns |
@@ -210,10 +210,20 b' hg debugwalk beans/.hg' | |||||
210 | beans/.hg: No such file or directory |
|
210 | beans/.hg: No such file or directory | |
211 |
|
211 | |||
212 | hg debugwalk glob:* |
|
212 | hg debugwalk glob:* | |
213 | f fennel fennel |
|
213 | f beans/black beans/black | |
214 | f fenugreek fenugreek |
|
214 | f beans/borlotti beans/borlotti | |
215 | f fiddlehead fiddlehead |
|
215 | f beans/kidney beans/kidney | |
216 | f glob:glob glob:glob |
|
216 | f beans/navy beans/navy | |
|
217 | f beans/pinto beans/pinto | |||
|
218 | f beans/turtle beans/turtle | |||
|
219 | f fennel fennel | |||
|
220 | f fenugreek fenugreek | |||
|
221 | f fiddlehead fiddlehead | |||
|
222 | f glob:glob glob:glob | |||
|
223 | f mammals/Procyonidae/cacomistle mammals/Procyonidae/cacomistle | |||
|
224 | f mammals/Procyonidae/coatimundi mammals/Procyonidae/coatimundi | |||
|
225 | f mammals/Procyonidae/raccoon mammals/Procyonidae/raccoon | |||
|
226 | f mammals/skunk mammals/skunk | |||
217 |
|
227 | |||
218 | hg debugwalk re:.*[kb]$ |
|
228 | hg debugwalk re:.*[kb]$ | |
219 | f beans/black beans/black |
|
229 | f beans/black beans/black |
General Comments 0
You need to be logged in to leave comments.
Login now