• E
    merge-recursive: improve handling for rename/rename(2to1) conflicts · bbafc9c4
    Elijah Newren 提交于
    This makes the rename/rename(2to1) conflicts use the new
    handle_file_collision() function.  Since that function was based
    originally on the rename/rename(2to1) handling code, the main
    differences here are in what was added.  In particular:
    
      * Instead of storing files at collide_path~HEAD and collide_path~MERGE,
        the files are two-way merged and recorded at collide_path.
    
      * Instead of recording the version of the renamed file that existed
        on the renamed side in the index (thus ignoring any changes that
        were made to the file on the side of history without the rename),
        we do a three-way content merge on the renamed path, then store
        that at either stage 2 or stage 3.
    
      * Note that since the content merge for each rename may have conflicts,
        and then we have to merge the two renamed files, we can end up with
        nested conflict markers.
    Signed-off-by: NElijah Newren <newren@gmail.com>
    Signed-off-by: NJunio C Hamano <gitster@pobox.com>
    bbafc9c4
merge-recursive.c 108.0 KB