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>
This commit is contained in:
parent
29df2385d0
commit
82881b3823
4
attr.c
4
attr.c
@ -546,7 +546,9 @@ static int path_matches(const char *pathname, int pathlen,
|
|||||||
(baselen && pathname[baselen] != '/') ||
|
(baselen && pathname[baselen] != '/') ||
|
||||||
strncmp(pathname, base, baselen))
|
strncmp(pathname, base, baselen))
|
||||||
return 0;
|
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)
|
static int fill_one(const char *what, struct match_attr *a, int rem)
|
||||||
|
@ -21,6 +21,7 @@ test_expect_success 'setup' '
|
|||||||
mkdir -p a/b/d a/c &&
|
mkdir -p a/b/d a/c &&
|
||||||
(
|
(
|
||||||
echo "f test=f"
|
echo "f test=f"
|
||||||
|
echo "a/i test=a/i"
|
||||||
) >.gitattributes &&
|
) >.gitattributes &&
|
||||||
(
|
(
|
||||||
echo "g test=a/g" &&
|
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
|
test_done
|
||||||
|
Loading…
Reference in New Issue
Block a user