[PATCH 2 of 2 stable] match: if the repo root is a root, that is the only root we need
Mads Kiilerich
mads at kiilerich.com
Mon Apr 29 18:12:47 CDT 2013
# HG changeset patch
# User Mads Kiilerich <madski at unity3d.com>
# Date 1367276676 -7200
# Tue Apr 30 01:04:36 2013 +0200
# Branch stable
# Node ID 37cd2c0256a819b0dd2a9ed6629ccfba9cacbdb3
# Parent 1a03a17839751dbc4eb4f6fccbdd0c8f1e5c7379
match: if the repo root is a root, that is the only root we need
This seems more correct and efficient than the old behavior - but is not
necessarily a bugfix and a bit risky.
It will change what ends up in .files() and what is .exact().
diff --git a/mercurial/match.py b/mercurial/match.py
--- a/mercurial/match.py
+++ b/mercurial/match.py
@@ -341,11 +341,15 @@
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 @@
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 @@
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