This series depends on en/merge-cleanup-more and is built on that series. (It merges cleanly to master, next, and pu). 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 Changes since v2: * Removed RFC label (en/merge-cleanup-more is now pu -- in fact, v2 of that series is in pu; also, I'm starting to build other series on this one which has increased my confidence in it) * patch for increasing marker length with depth of recursion has been pulled from the en/merge-cleanup-more series and added to this series * Fixed an incorrect sentence in a commit message that was leftover from v1. [1] https://public-inbox.org/git/20180312213521.GB58506@xxxxxxxxxxxxxxxxxxxxxxxxx/ [2] https://public-inbox.org/git/CAPc5daVu8vv9RdGON8JiXEO3ycDVqQ38ySzZc-cpo+AQcAKXjA@xxxxxxxxxxxxxx Elijah Newren (8): 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 ll-merge.c | 4 +- ll-merge.h | 1 + merge-recursive.c | 528 ++++++++++++++++----------- t/t6036-recursive-corner-cases.sh | 379 ++++++++++++++++++- t/t6042-merge-rename-corner-cases.sh | 333 ++++++++++++++++- t/t6043-merge-rename-directories.sh | 107 +++--- 6 files changed, 1060 insertions(+), 292 deletions(-) -- 2.19.1.1036.gce51225f01.dirty