Merge branch 'js/abspath-part-inside-repo'
On a case-insensitive filesystem, we failed to compare the part of the path that is above the worktree directory in an absolute pathname, which has been corrected. * js/abspath-part-inside-repo: abspath_part_inside_repo: respect core.ignoreCase
This commit is contained in:
6
setup.c
6
setup.c
@ -39,7 +39,7 @@ static int abspath_part_inside_repo(char *path)
|
|||||||
off = offset_1st_component(path);
|
off = offset_1st_component(path);
|
||||||
|
|
||||||
/* check if work tree is already the prefix */
|
/* check if work tree is already the prefix */
|
||||||
if (wtlen <= len && !strncmp(path, work_tree, wtlen)) {
|
if (wtlen <= len && !fspathncmp(path, work_tree, wtlen)) {
|
||||||
if (path[wtlen] == '/') {
|
if (path[wtlen] == '/') {
|
||||||
memmove(path, path + wtlen + 1, len - wtlen);
|
memmove(path, path + wtlen + 1, len - wtlen);
|
||||||
return 0;
|
return 0;
|
||||||
@ -59,7 +59,7 @@ static int abspath_part_inside_repo(char *path)
|
|||||||
path++;
|
path++;
|
||||||
if (*path == '/') {
|
if (*path == '/') {
|
||||||
*path = '\0';
|
*path = '\0';
|
||||||
if (strcmp(real_path(path0), work_tree) == 0) {
|
if (fspathcmp(real_path(path0), work_tree) == 0) {
|
||||||
memmove(path0, path + 1, len - (path - path0));
|
memmove(path0, path + 1, len - (path - path0));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -68,7 +68,7 @@ static int abspath_part_inside_repo(char *path)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* check whole path */
|
/* check whole path */
|
||||||
if (strcmp(real_path(path0), work_tree) == 0) {
|
if (fspathcmp(real_path(path0), work_tree) == 0) {
|
||||||
*path0 = '\0';
|
*path0 = '\0';
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -402,4 +402,11 @@ test_expect_success 'all statuses changed in folder if . is given' '
|
|||||||
test $(git ls-files --stage | grep ^100755 | wc -l) -eq 0
|
test $(git ls-files --stage | grep ^100755 | wc -l) -eq 0
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success CASE_INSENSITIVE_FS 'path is case-insensitive' '
|
||||||
|
path="$(pwd)/BLUB" &&
|
||||||
|
touch "$path" &&
|
||||||
|
downcased="$(echo "$path" | tr A-Z a-z)" &&
|
||||||
|
git add "$downcased"
|
||||||
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
Reference in New Issue
Block a user