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/[email protected]/
[2]
https://public-inbox.org/git/capc5davu8vv9rdgon8jixeo3ycdvqq38yszzc-cpo+aqcak...@mail.gmail.com
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