[PATCH v5 00/10] Improve path collision conflict resolutions
- From
Elijah Newren <newren@gmail.com>
- Date
- Nov 8, 2018, 04:40 UTC
- Message-ID
- <20181108044031.25885-1-newren@gmail.com>
- In-Reply-To
- <CABPp-BG2rFEeKVe8ok+a-jLFvPBfnZs1b3Mp2Jfi2JgNZcO8gA@mail.gmail.com>
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@aiede.svl.corp.google.com/ [2] https://public-inbox.org/git/CAPc5daVu8vv9RdGON8JiXEO3ycDVqQ38ySzZc-cpo+AQcAKXjA@mail.gmail.com
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 handlingll-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