diff options
author | Elijah Newren <newren@gmail.com> | 2018-11-07 20:40:27 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-11-08 14:23:53 +0900 |
commit | bbafc9c44ae7109f636772350934b3c5d747da44 (patch) | |
tree | 6a0fa50543947df42adab3818ce62f90d136ac0a /t/chainlint/if-in-loop.test | |
parent | merge-recursive: fix rename/add conflict handling (diff) | |
download | tgif-bbafc9c44ae7109f636772350934b3c5d747da44.tar.xz |
merge-recursive: improve handling for rename/rename(2to1) conflicts
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: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/chainlint/if-in-loop.test')
0 files changed, 0 insertions, 0 deletions