• J
    merge-recursive: do not barf on "to be removed" entries. · ac7f0f43
    Junio C Hamano 提交于
    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: NJunio C Hamano <junkio@cox.net>
    ac7f0f43
merge-recursive.c 36.2 KB