diff options
author | Junio C Hamano <junkio@cox.net> | 2007-04-07 05:52:57 -0700 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2007-04-10 12:55:51 -0700 |
commit | ac7f0f436e4f45d616ca509f5163fddab104516b (patch) | |
tree | f8187e88b8088d1dd912716a398524c8e6bde308 /entry.c | |
parent | 4c4caafc9cef1031beb46babe9adfdcc03f3cd52 (diff) | |
download | git-ac7f0f436e4f45d616ca509f5163fddab104516b.tar.gz |
merge-recursive: do not barf on "to be removed" entries.
When update-trees::threeway_merge() decides that a path that
exists in the current index (and HEAD) is to be removed, it
leaves a stage 0 entry whose mode bits are set to 0. The code
mistook it as "this stage wants the blob here", and proceeded
to call update_file_flags() which ended up trying to put the
mode=0 entry in the index, got very confused, and ended up
barfing with "do not know what to do with 000000".
Since threeway_merge() does not handle case #10 (one side
removes while the other side does not do anything), this is not
a problem while we refuse to merge branches that have D/F
conflicts, but when we start resolving them, we would need to be
able to remove cache entries, and at that point it starts to
matter.
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'entry.c')
0 files changed, 0 insertions, 0 deletions