[PATCH stable? V2] match: let 'path:.' and 'path:' match everything (issue4687)

Matt Harbison mharbison72 at gmail.com
Sun Jun 21 15:21:40 UTC 2015


# HG changeset patch
# User Matt Harbison <matt_harbison at yahoo.com>
# Date 1434844766 14400
#      Sat Jun 20 19:59:26 2015 -0400
# Node ID 55c0d9db1542351d819f9ceb9997fdfc6b8430a7
# Parent  4359485eb420d7474c22e492dcf6d9596f50fc9a
match: let 'path:.' and 'path:' match everything (issue4687)

Previously, both queries exited with code 1, printing nothing.  The pattern in
the latter query is normalized to '.', so it is really the same case.

diff --git a/mercurial/match.py b/mercurial/match.py
--- a/mercurial/match.py
+++ b/mercurial/match.py
@@ -505,6 +505,8 @@
     if kind == 're':
         return pat
     if kind == 'path':
+        if pat == '.':
+            return ''
         return '^' + util.re.escape(pat) + '(?:/|$)'
     if kind == 'relglob':
         return '(?:|.*/)' + _globre(pat) + globsuffix
diff --git a/tests/test-locate.t b/tests/test-locate.t
--- a/tests/test-locate.t
+++ b/tests/test-locate.t
@@ -106,6 +106,19 @@
   $ mkdir otherdir
   $ cd otherdir
 
+  $ hg files path:
+  ../b (glob)
+  ../dir.h/foo (glob)
+  ../t.h (glob)
+  ../t/e.h (glob)
+  ../t/x (glob)
+  $ hg files path:.
+  ../b (glob)
+  ../dir.h/foo (glob)
+  ../t.h (glob)
+  ../t/e.h (glob)
+  ../t/x (glob)
+
   $ hg locate b
   ../b (glob)
   ../t/b (glob)


More information about the Mercurial-devel mailing list