[PATCH 1 of 7] match: if the repo root is a root, that is the only root we need

Mads Kiilerich mads at kiilerich.com
Wed Jan 15 19:18:09 CST 2014


# HG changeset patch
# User Mads Kiilerich <madski at unity3d.com>
# Date 1380816081 -7200
#      Thu Oct 03 18:01:21 2013 +0200
# Node ID 7a74b5ba8e5e663786774fe84ec4ecca0207a9c5
# Parent  47d0843647d1e32f6af4482867327cec5db11a1f
match: if the repo root is a root, that is the only root we need

It will change what ends up in .files() and what is .exact(), in a way that is
more correct and efficient than before.

diff --git a/mercurial/match.py b/mercurial/match.py
--- a/mercurial/match.py
+++ b/mercurial/match.py
@@ -345,11 +345,15 @@ def _roots(patterns):
                 if '[' in p or '{' in p or '*' in p or '?' in p:
                     break
                 root.append(p)
-            r.append('/'.join(root) or '.')
+            if not root:
+                return ['.']
+            r.append('/'.join(root))
         elif kind in ('relpath', 'path'):
-            r.append(name or '.')
+            if not name:
+                return ['.']
+            r.append(name)
         else: # relglob, re, relre
-            r.append('.')
+            return ['.']
     return r
 
 def _anypats(patterns):
diff --git a/tests/test-walk.t b/tests/test-walk.t
--- a/tests/test-walk.t
+++ b/tests/test-walk.t
@@ -259,7 +259,7 @@ Test patterns:
   f  mammals/Procyonidae/coatimundi  mammals/Procyonidae/coatimundi
   f  mammals/Procyonidae/raccoon     mammals/Procyonidae/raccoon
   $ hg debugwalk 'relglob:Procyonidae/**' fennel
-  f  fennel                          fennel                          exact
+  f  fennel                          fennel
   f  mammals/Procyonidae/cacomistle  mammals/Procyonidae/cacomistle
   f  mammals/Procyonidae/coatimundi  mammals/Procyonidae/coatimundi
   f  mammals/Procyonidae/raccoon     mammals/Procyonidae/raccoon
@@ -276,7 +276,7 @@ Test patterns:
   f  mammals/Procyonidae/raccoon     mammals/Procyonidae/raccoon
   f  mammals/skunk                   mammals/skunk
   $ hg debugwalk 'glob:mamm**' fennel
-  f  fennel                          fennel                          exact
+  f  fennel                          fennel
   f  mammals/Procyonidae/cacomistle  mammals/Procyonidae/cacomistle
   f  mammals/Procyonidae/coatimundi  mammals/Procyonidae/coatimundi
   f  mammals/Procyonidae/raccoon     mammals/Procyonidae/raccoon


More information about the Mercurial-devel mailing list