This series applies cleanly on master, since en/merge-cleanup-more has now merged down. This series makes all the "file collision" conflict types be handled consistently; making them all behave like add/add (as suggested by Jonathan[1] and Junio[2]). These types are: * add/add * rename/add * rename/rename(2to1) * each rename/add piece of a rename/rename(1to2)/add[/add] conflict [1] https://public-inbox.org/git/20180312213521.GB58506@xxxxxxxxxxxxxxxxxxxxxxxxx/ [2] https://public-inbox.org/git/CAPc5daVu8vv9RdGON8JiXEO3ycDVqQ38ySzZc-cpo+AQcAKXjA@xxxxxxxxxxxxxx Changes since v4: * Merged the two RFC patches into a single patch. * Added patch submitted by Stolee at the end. * (The addition of what are the last two patches are also the only difference since v3) Derrick Stolee (1): merge-recursive: combine error handling Elijah Newren (9): Add testcases for consistency in file collision conflict handling t6036, t6042: testcases for rename collision of already conflicting files merge-recursive: increase marker length with depth of recursion merge-recursive: new function for better colliding conflict resolutions merge-recursive: fix rename/add conflict handling merge-recursive: improve handling for rename/rename(2to1) conflicts merge-recursive: use handle_file_collision for add/add conflicts merge-recursive: improve rename/rename(1to2)/add[/add] handling t6036, t6043: increase code coverage for file collision handling ll-merge.c | 4 +- ll-merge.h | 1 + merge-recursive.c | 529 ++++++++++++++++----------- t/t6036-recursive-corner-cases.sh | 430 +++++++++++++++++++++- t/t6042-merge-rename-corner-cases.sh | 333 ++++++++++++++++- t/t6043-merge-rename-directories.sh | 144 +++++--- 6 files changed, 1149 insertions(+), 292 deletions(-) -- 2.19.1.858.g526e8fe740.dirty