mercurial/match.py
branchstable
changeset 21815 a4b67bf1f0a5
parent 21191 a2f4ea82d6d3
child 21909 335bb8b80443
--- a/mercurial/match.py	Wed Jun 18 19:46:18 2014 -0500
+++ b/mercurial/match.py	Wed Jun 25 14:50:48 2014 -0700
@@ -233,6 +233,10 @@
     [^/]*
     >>> print _globre(r'**')
     .*
+    >>> print _globre(r'**/a')
+    (?:.*/)?a
+    >>> print _globre(r'a/**/b')
+    a\/(?:.*/)?b
     >>> print _globre(r'[a*?!^][^b][!c]')
     [a*?!^][\^b][^c]
     >>> print _globre(r'{a,b}')
@@ -254,7 +258,11 @@
         elif c == '*':
             if peek() == '*':
                 i += 1
-                res += '.*'
+                if peek() == '/':
+                    i += 1
+                    res += '(?:.*/)?'
+                else:
+                    res += '.*'
             else:
                 res += '[^/]*'
         elif c == '?':