Mercurial > hg
annotate mercurial/match.py @ 7213:b4c035057d34
findcmd: have dispatch look up strict flag
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Wed, 22 Oct 2008 17:34:08 -0500 |
parents | cbdfd08eabc9 |
children | 08e1baf924ca |
rev | line source |
---|---|
6576 | 1 import util |
2 | |
6604
98b6e6f0e49b
match: cleanup match classes a bit
Matt Mackall <mpm@selenic.com>
parents:
6596
diff
changeset
|
3 class _match(object): |
98b6e6f0e49b
match: cleanup match classes a bit
Matt Mackall <mpm@selenic.com>
parents:
6596
diff
changeset
|
4 def __init__(self, root, cwd, files, mf, ap): |
6576 | 5 self._root = root |
6 self._cwd = cwd | |
6604
98b6e6f0e49b
match: cleanup match classes a bit
Matt Mackall <mpm@selenic.com>
parents:
6596
diff
changeset
|
7 self._files = files |
98b6e6f0e49b
match: cleanup match classes a bit
Matt Mackall <mpm@selenic.com>
parents:
6596
diff
changeset
|
8 self._fmap = dict.fromkeys(files) |
6834
cbdfd08eabc9
dirstate.walk: speed up calling match function
Matt Mackall <mpm@selenic.com>
parents:
6604
diff
changeset
|
9 self.matchfn = mf |
6576 | 10 self._anypats = ap |
11 def __call__(self, fn): | |
6834
cbdfd08eabc9
dirstate.walk: speed up calling match function
Matt Mackall <mpm@selenic.com>
parents:
6604
diff
changeset
|
12 return self.matchfn(fn) |
6576 | 13 def __iter__(self): |
14 for f in self._files: | |
15 yield f | |
16 def bad(self, f, msg): | |
17 return True | |
18 def dir(self, f): | |
19 pass | |
20 def missing(self, f): | |
21 pass | |
22 def exact(self, f): | |
23 return f in self._fmap | |
24 def rel(self, f): | |
25 return util.pathto(self._root, self._cwd, f) | |
26 def files(self): | |
27 return self._files | |
28 def anypats(self): | |
29 return self._anypats | |
6596
7fe4610cf920
match: add always, never, and exact methods
Matt Mackall <mpm@selenic.com>
parents:
6578
diff
changeset
|
30 |
6604
98b6e6f0e49b
match: cleanup match classes a bit
Matt Mackall <mpm@selenic.com>
parents:
6596
diff
changeset
|
31 class always(_match): |
98b6e6f0e49b
match: cleanup match classes a bit
Matt Mackall <mpm@selenic.com>
parents:
6596
diff
changeset
|
32 def __init__(self, root, cwd): |
98b6e6f0e49b
match: cleanup match classes a bit
Matt Mackall <mpm@selenic.com>
parents:
6596
diff
changeset
|
33 _match.__init__(self, root, cwd, [], lambda f: True, False) |
98b6e6f0e49b
match: cleanup match classes a bit
Matt Mackall <mpm@selenic.com>
parents:
6596
diff
changeset
|
34 |
98b6e6f0e49b
match: cleanup match classes a bit
Matt Mackall <mpm@selenic.com>
parents:
6596
diff
changeset
|
35 class never(_match): |
98b6e6f0e49b
match: cleanup match classes a bit
Matt Mackall <mpm@selenic.com>
parents:
6596
diff
changeset
|
36 def __init__(self, root, cwd): |
98b6e6f0e49b
match: cleanup match classes a bit
Matt Mackall <mpm@selenic.com>
parents:
6596
diff
changeset
|
37 _match.__init__(self, root, cwd, [], lambda f: False, False) |
6596
7fe4610cf920
match: add always, never, and exact methods
Matt Mackall <mpm@selenic.com>
parents:
6578
diff
changeset
|
38 |
6604
98b6e6f0e49b
match: cleanup match classes a bit
Matt Mackall <mpm@selenic.com>
parents:
6596
diff
changeset
|
39 class exact(_match): |
98b6e6f0e49b
match: cleanup match classes a bit
Matt Mackall <mpm@selenic.com>
parents:
6596
diff
changeset
|
40 def __init__(self, root, cwd, files): |
98b6e6f0e49b
match: cleanup match classes a bit
Matt Mackall <mpm@selenic.com>
parents:
6596
diff
changeset
|
41 _match.__init__(self, root, cwd, files, lambda f: f in files, False) |
6596
7fe4610cf920
match: add always, never, and exact methods
Matt Mackall <mpm@selenic.com>
parents:
6578
diff
changeset
|
42 |
6604
98b6e6f0e49b
match: cleanup match classes a bit
Matt Mackall <mpm@selenic.com>
parents:
6596
diff
changeset
|
43 class match(_match): |
98b6e6f0e49b
match: cleanup match classes a bit
Matt Mackall <mpm@selenic.com>
parents:
6596
diff
changeset
|
44 def __init__(self, root, cwd, patterns, include, exclude, default): |
98b6e6f0e49b
match: cleanup match classes a bit
Matt Mackall <mpm@selenic.com>
parents:
6596
diff
changeset
|
45 f, mf, ap = util.matcher(root, cwd, patterns, include, exclude, |
98b6e6f0e49b
match: cleanup match classes a bit
Matt Mackall <mpm@selenic.com>
parents:
6596
diff
changeset
|
46 None, default) |
98b6e6f0e49b
match: cleanup match classes a bit
Matt Mackall <mpm@selenic.com>
parents:
6596
diff
changeset
|
47 _match.__init__(self, root, cwd, f, mf, ap) |