diff options
author | Matthew Ogilvie <mmogilvi_git@miniinfo.net> | 2008-04-22 12:19:12 -0600 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-04-22 21:12:37 -0700 |
commit | 82881b38235d0a46a4486dc5dc819c5d0ee3f2c1 (patch) | |
tree | d4546c77756c2340eb7645e4375a83d80c7c1fee | |
parent | 29df2385d09611219c53d07f453794d6146e73a3 (diff) | |
download | git-82881b38235d0a46a4486dc5dc819c5d0ee3f2c1.tar.gz git-82881b38235d0a46a4486dc5dc819c5d0ee3f2c1.tar.xz |
gitattributes: Fix subdirectory attributes specified from root directory
Signed-off-by: Matthew Ogilvie <mmogilvi_git@miniinfo.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | attr.c | 4 | ||||
-rwxr-xr-x | t/t0003-attributes.sh | 8 |
2 files changed, 11 insertions, 1 deletions
@@ -546,7 +546,9 @@ static int path_matches(const char *pathname, int pathlen, (baselen && pathname[baselen] != '/') || strncmp(pathname, base, baselen)) return 0; - return fnmatch(pattern, pathname + baselen + 1, FNM_PATHNAME) == 0; + if (baselen != 0) + baselen++; + return fnmatch(pattern, pathname + baselen, FNM_PATHNAME) == 0; } static int fill_one(const char *what, struct match_attr *a, int rem) diff --git a/t/t0003-attributes.sh b/t/t0003-attributes.sh index 47f08a46c..e7fa4f5d4 100755 --- a/t/t0003-attributes.sh +++ b/t/t0003-attributes.sh @@ -21,6 +21,7 @@ test_expect_success 'setup' ' mkdir -p a/b/d a/c && ( echo "f test=f" + echo "a/i test=a/i" ) >.gitattributes && ( echo "g test=a/g" && @@ -46,4 +47,11 @@ test_expect_success 'attribute test' ' ' +test_expect_success 'root subdir attribute test' ' + + attr_check a/i a/i && + attr_check subdir/a/i unspecified + +' + test_done |