Optimize return value of util._matcher for common command line case
authorAlexis S. L. Carvalho <alexis@cecm.usp.br>
Sat, 10 Mar 2007 23:01:00 -0300
changeset 4193 9e3121017fb2
parent 4192 492d0d5b6976
child 4194 ec932167c3a7
Optimize return value of util._matcher for common command line case This will trigger every time somebody runs something like "hg diff" or "hg status" without any arguments. The important part here is returning util.always as the match function, which is a much simpler (and faster) function than the usual return value, and allows other code to just skip the filtering if it knows all files will match.
mercurial/util.py
--- a/mercurial/util.py
+++ b/mercurial/util.py
@@ -418,6 +418,10 @@ def _matcher(canonroot, cwd, names, inc,
     - a bool indicating if any patterns were passed in
     """
 
+    # a common case: no patterns at all
+    if not names and not inc and not exc:
+        return [], always, False
+
     def contains_glob(name):
         for c in name:
             if c in _globchars: return True