Mercurial > hg
diff tests/test-hgignore.t @ 21815:a4b67bf1f0a5 stable
match: make glob '**/' match the empty string
Previously, a glob pattern of the form 'foo/**/bar' would match 'foo/a/bar' but
not 'foo/bar'. That was because the '**' in 'foo/**/bar' would be translated to
'.*', making the final regex pattern 'foo/.*/bar'. That pattern doesn't match
the string 'foo/bar'.
This is a bug because the '**/' glob matches the empty string in standard Unix
shells like bash and zsh.
Fix that by making the ending '/' optional if an empty string can be matched.
author | Siddharth Agarwal <sid0@fb.com> |
---|---|
date | Wed, 25 Jun 2014 14:50:48 -0700 |
parents | f4930b533d55 |
children | 7d7a4848fff4 |
line wrap: on
line diff
--- a/tests/test-hgignore.t Wed Jun 18 19:46:18 2014 -0500 +++ b/tests/test-hgignore.t Wed Jun 25 14:50:48 2014 -0700 @@ -134,3 +134,17 @@ ? a.c ? a.o ? syntax + +Check recursive glob pattern matches no directories (dir/**/c.o matches dir/c.o) + + $ echo "syntax: glob" > .hgignore + $ echo "dir/**/c.o" >> .hgignore + $ touch dir/c.o + $ mkdir dir/subdir + $ touch dir/subdir/c.o + $ hg status + A dir/b.o + ? .hgignore + ? a.c + ? a.o + ? syntax