Skip to content

Improve path collision conflict resolutions

Elijah Newren git 5 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v5 Latest10 patches 1 replyIn review
  2. v410 patches 2 repliesSuperseded
  3. v38 patches 9 repliesSuperseded
Earlier versions · 2
VersionPostedPatchesRepliesStatus
v2 RFC7 patches0 repliesSuperseded
v1 RFC5 patches3 repliesSuperseded

Changes in v5 from the cover letter

* 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)

Patches in v5 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/10Add testcases for consistency in file collision conflict handlingt/t6042-merge-rename-corner-cases.sh+162 -00 replies
2/10t6036, t6042: testcases for rename collision of already conflicting filest/t6036-recursive-corner-cases.sh t/t6042-merge-rename-corner-cases.sh+312 -00 replies
3/10merge-recursive: increase marker length with depth of recursionll-merge.c ll-merge.h merge-recursive.c +1 more+172 -90 replies
4/10merge-recursive: new function for better colliding conflict resolutionsmerge-recursive.c+121 -00 replies
5/10merge-recursive: fix rename/add conflict handlingmerge-recursive.c t/t6036-recursive-corner-cases.sh t/t6042-merge-rename-corner-cases.sh+101 -640 replies
6/10merge-recursive: improve handling for rename/rename(2to1) conflictsmerge-recursive.c t/t6036-recursive-corner-cases.sh t/t6042-merge-rename-corner-cases.sh +1 more+89 -1480 replies
7/10merge-recursive: use handle_file_collision for add/add conflictsmerge-recursive.c+21 -80 replies
8/10merge-recursive: improve rename/rename(1to2)/add[/add] handlingmerge-recursive.c t/t6042-merge-rename-corner-cases.sh t/t6043-merge-rename-directories.sh+113 -940 replies
9/10t6036, t6043: increase code coverage for file collision handlingt/t6036-recursive-corner-cases.sh t/t6043-merge-rename-directories.sh+88 -00 replies
10/10merge-recursive: combine error handlingmerge-recursive.c+27 -261 reply

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v5 yet.

Read the v5 thread

Cover letter [PATCH v5 00/10] Improve path collision conflict resolutions

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/[email protected]/
[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 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(-)
Signature · 1 line
2.19.1.858.g526e8fe740.dirty