merge-recursive: avoid spurious rename/rename conflict from dir renames
commitfebb3a86098f853066c2623c2392f156710dd40f
authorElijah Newren <newren@gmail.com>
Wed, 14 Feb 2018 18:52:05 +0000 (14 10:52 -0800)
committerJunio C Hamano <gitster@pobox.com>
Tue, 27 Feb 2018 22:11:58 +0000 (27 14:11 -0800)
tree291b95abe28dfa2508eb5e951cecef25450ff77a
parent8f581e3a470fa92e99b28974f68ee2d23230d1c9
merge-recursive: avoid spurious rename/rename conflict from dir renames

If a file on one side of history was renamed, and merely modified on the
other side, then applying a directory rename to the modified side gives us
a rename/rename(1to2) conflict.  We should only apply directory renames to
pairs representing either adds or renames.

Making this change means that a directory rename testcase that was
previously reported as a rename/delete conflict will now be reported as a
modify/delete conflict.

Reviewed-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
merge-recursive.c
t/t6043-merge-rename-directories.sh