summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2017-12-19 11:33:55 -0800
committerJunio C Hamano <gitster@pobox.com>2017-12-19 11:33:55 -0800
commit6d2c4619a59d53325e6de2265205c407767bde9d (patch)
treea79c7e9a6cac6d2b8ceafcc7335af9ea0de1c089
parent646685460c26d56b149da91544e76150119d9c9b (diff)
parent4cba2b0108dbf4d5653a4c4d3208b02c6bc415b7 (diff)
downloadgit-6d2c4619a59d53325e6de2265205c407767bde9d.tar.gz
Merge branch 'en/merge-recursive-icase-removal'
The code internal to the recursive merge strategy was not fully prepared to see a path that is renamed to try overwriting another path that is only different in case on case insensitive systems. This does not matter in the current code, but will start to matter once the rename detection logic starts taking hints from nearby paths moving to some directory and moves a new path along with them. * en/merge-recursive-icase-removal: merge-recursive: ignore_case shouldn't reject intentional removals
-rw-r--r--merge-recursive.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/merge-recursive.c b/merge-recursive.c
index a4c280dfc7..2ecf495cc2 100644
--- a/merge-recursive.c
+++ b/merge-recursive.c
@@ -646,7 +646,7 @@ static int remove_file(struct merge_options *o, int clean,
if (ignore_case) {
struct cache_entry *ce;
ce = cache_file_exists(path, strlen(path), ignore_case);
- if (ce && ce_stage(ce) == 0)
+ if (ce && ce_stage(ce) == 0 && strcmp(path, ce->name))
return 0;
}
if (remove_path(path))