[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