merge-recursive.c: fix case-changing merge bug
commitae352c7f37ef2098e03ee86bc7fd75b210b17683
authorDavid Turner <dturner@twopensource.com>
Fri, 2 May 2014 00:21:09 +0000 (1 20:21 -0400)
committerJunio C Hamano <gitster@pobox.com>
Wed, 7 May 2014 20:53:10 +0000 (7 13:53 -0700)
treedaec7c4bdaadb3f2f82a3cdfaa5189e6f5142788
parent0bc85abb7aa9b24b093253018801a0fb43d01122
merge-recursive.c: fix case-changing merge bug

On a case-insensitive filesystem, when merging, a file would be
wrongly deleted from the working tree if an incoming commit had
renamed it changing only its case.  When merging a rename, the file
with the old name would be deleted -- but since the filesystem
considers the old name to be the same as the new name, the new
file would in fact be deleted.

We avoid this by not deleting files that have a case-clone in the
index at stage 0.

Signed-off-by: David Turner <dturner@twitter.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
merge-recursive.c
t/t6039-merge-ignorecase.sh [new file with mode: 0755]