mirror of
https://github.com/facebook/sapling.git
synced 2024-10-07 07:17:55 +03:00
match: add isexact() method to hide internals
Comparing a function reference seems bad.
This commit is contained in:
parent
ca1a27676b
commit
8874cd66a5
@ -611,7 +611,7 @@ class dirstate(object):
|
||||
dirsnotfound = []
|
||||
notfoundadd = dirsnotfound.append
|
||||
|
||||
if match.matchfn != match.exact and self._checkcase:
|
||||
if not match.isexact() and self._checkcase:
|
||||
normalize = self._normalize
|
||||
else:
|
||||
normalize = None
|
||||
@ -711,7 +711,7 @@ class dirstate(object):
|
||||
join = self._join
|
||||
|
||||
exact = skipstep3 = False
|
||||
if matchfn == match.exact: # match.exact
|
||||
if match.isexact(): # match.exact
|
||||
exact = True
|
||||
dirignore = util.always # skip step 2
|
||||
elif match.files() and not match.anypats(): # match.match, no patterns
|
||||
@ -912,7 +912,7 @@ class dirstate(object):
|
||||
if match.always():
|
||||
return dmap.keys()
|
||||
files = match.files()
|
||||
if match.matchfn == match.exact:
|
||||
if match.isexact():
|
||||
# fast path -- filter the other way around, since typically files is
|
||||
# much smaller than dmap
|
||||
return [f for f in files if f in dmap]
|
||||
|
@ -164,7 +164,7 @@ class manifestdict(object):
|
||||
return self.copy()
|
||||
|
||||
files = match.files()
|
||||
if (len(files) < 100 and (match.matchfn == match.exact or
|
||||
if (len(files) < 100 and (match.isexact() or
|
||||
(not match.anypats() and util.all(fn in self for fn in files)))):
|
||||
return self.intersectfiles(files)
|
||||
|
||||
@ -519,7 +519,7 @@ class treemanifest(object):
|
||||
return self.copy()
|
||||
|
||||
files = match.files()
|
||||
if (match.matchfn == match.exact or
|
||||
if (match.isexact() or
|
||||
(not match.anypats() and util.all(fn in self for fn in files))):
|
||||
return self.intersectfiles(files)
|
||||
|
||||
|
@ -171,6 +171,9 @@ class match(object):
|
||||
- optimization might be possible and necessary.'''
|
||||
return self._always
|
||||
|
||||
def isexact(self):
|
||||
return self.matchfn == self.exact
|
||||
|
||||
def exact(root, cwd, files):
|
||||
return match(root, cwd, files, exact=True)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user