merge-recursive: handle D/F conflict case more carefully.
authorJunio C Hamano <junkio@cox.net>
Sat, 7 Apr 2007 13:41:13 +0000 (06:41 -0700)
committerJunio C Hamano <junkio@cox.net>
Tue, 10 Apr 2007 19:55:51 +0000 (12:55 -0700)
commit4d50895a390658bf1b9a9385dbc0b9f90b48c803
tree78c791b9717cd240d7c900b77ad572c62b637526
parentac7f0f436e4f45d616ca509f5163fddab104516b
merge-recursive: handle D/F conflict case more carefully.

When a path D that originally was blob in the ancestor was
modified on our branch while it was removed on the other branch,
we keep stages 1 and 2, and leave our version in the working
tree.  If the other branch created a path D/F, however, that
path can cleanly be resolved in the index (after all, the
ancestor nor we do not have it and only the other side added),
but it cannot be checked out.  The issue is the same when the
other branch had D and we had renamed it to D/F, or the ancestor
had D/F instead of D (so there are four combinations).

Do not stop the merge, but leave both D and D/F paths in the
index so that the user can clear things up.

Signed-off-by: Junio C Hamano <junkio@cox.net>
merge-recursive.c