Optimize return value of util._matcher for hgignore case
authorAlexis S. L. Carvalho <alexis@cecm.usp.br>
Sat, 10 Mar 2007 23:01:02 -0300
changeset 4199 ec932167c3a7
parent 4198 9e3121017fb2
child 4200 b5d1eaade333
child 4233 03a665f9f913
Optimize return value of util._matcher for hgignore case
mercurial/util.py
--- a/mercurial/util.py	Sat Mar 10 23:01:00 2007 -0300
+++ b/mercurial/util.py	Sat Mar 10 23:01:02 2007 -0300
@@ -509,9 +509,13 @@
         dummy, exckinds, dummy = normalizepats(exc, 'glob')
         excmatch = matchfn(exckinds, '(?:/|$)')
 
-    return (roots,
-            lambda fn: (incmatch(fn) and not excmatch(fn) and patmatch(fn)),
-            (inc or exc or anypats) and True)
+    if not names and inc and not exc:
+        # common case: hgignore patterns
+        match = incmatch
+    else:
+        match = lambda fn: incmatch(fn) and not excmatch(fn) and patmatch(fn)
+
+    return (roots, match, (inc or exc or anypats) and True)
 
 def system(cmd, environ={}, cwd=None, onerr=None, errprefix=None):
     '''enhanced shell command execution.