merge-recursive: Make dead code for rename/rename(2to1) conflicts undead
authorElijah Newren <newren@gmail.com>
Fri, 12 Aug 2011 05:20:04 +0000 (23:20 -0600)
committerJunio C Hamano <gitster@pobox.com>
Sun, 14 Aug 2011 21:19:37 +0000 (14:19 -0700)
commit0a6b87126e6a4e2649f6da23db67eeaad11d102e
tree032427c161ac3445f35ec8426a48a5bd163b7cbc
parent531357a4cc2b93ec68099890b835f50e462ceab7
merge-recursive: Make dead code for rename/rename(2to1) conflicts undead

The code for rename_rename_2to1 conflicts (two files both being renamed to
the same filename) was dead since the rename/add path was always being
independently triggered for each of the renames instead.  Further,
reviving the dead code showed that it was inherently buggy and would
always segfault -- among a few other bugs.

Move the else-if branch for the rename/rename block before the rename/add
block to make sure it is checked first, and fix up the rename/rename(2to1)
code segments to make it handle most cases.  Work is still needed to
handle higher dimensional corner cases such as rename/rename/modify/modify
issues.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
merge-recursive.c
t/t6036-recursive-corner-cases.sh