##// END OF EJS Templates
Experimental ignore regex speed-up...
Matt Mackall -
r649:a7e26722 default
parent child Browse files
Show More
@@ -487,7 +487,7 b' class localrepository:'
487 self.wopener = opener(self.root)
487 self.wopener = opener(self.root)
488 self.manifest = manifest(self.opener)
488 self.manifest = manifest(self.opener)
489 self.changelog = changelog(self.opener)
489 self.changelog = changelog(self.opener)
490 self.ignorelist = None
490 self.ignorefunc = None
491 self.tagscache = None
491 self.tagscache = None
492 self.nodetagscache = None
492 self.nodetagscache = None
493
493
@@ -498,17 +498,22 b' class localrepository:'
498 except IOError: pass
498 except IOError: pass
499
499
500 def ignore(self, f):
500 def ignore(self, f):
501 if self.ignorelist is None:
501 if not self.ignorefunc:
502 self.ignorelist = []
502 bigpat = []
503 try:
503 try:
504 l = file(self.wjoin(".hgignore"))
504 l = file(self.wjoin(".hgignore"))
505 for pat in l:
505 for pat in l:
506 if pat != "\n":
506 if pat != "\n":
507 self.ignorelist.append(re.compile(util.pconvert(pat[:-1])))
507 bigpat.append(util.pconvert(pat[:-1]))
508 except IOError: pass
508 except IOError: pass
509 for pat in self.ignorelist:
509 if bigpat:
510 if pat.search(f): return True
510 s = "(%s)" % (")|(".join(bigpat))
511 return False
511 r = re.compile(s)
512 self.ignorefunc = r.search
513 else:
514 self.ignorefunc = lambda x: False
515
516 return self.ignorefunc(f)
512
517
513 def hook(self, name, **args):
518 def hook(self, name, **args):
514 s = self.ui.config("hooks", name)
519 s = self.ui.config("hooks", name)
General Comments 0
You need to be logged in to leave comments. Login now