From: Elijah Newren <newren@gmail.com>
To: <git@vger.kernel.org>
Cc: Elijah Newren <newren@gmail.com>
Subject: [RFC PATCH v2 0/7] Improve path collision conflict resolutions
Date: Sat, 13 Oct 2018 19:05:30 -0700 [thread overview]
Message-ID: <20181014020537.17991-1-newren@gmail.com> (raw)
This RFC series depends on this series submitted yesterday:
https://public-inbox.org/git/20181012212551.7689-1-newren@gmail.com/
(which in turn depends on en/merge-cleanup in next).
Although this is an "update" to my previous RFC series from six months
ago:
https://public-inbox.org/git/20180305171125.22331-1-newren@gmail.com/
It's essentially a complete rewrite to instead use the strategy proposed
by Jonathan and Junio (from a separate thread discussing that RFC series):
https://public-inbox.org/git/20180312213521.GB58506@aiede.svl.corp.google.com/
https://public-inbox.org/git/CAPc5daVu8vv9RdGON8JiXEO3ycDVqQ38ySzZc-cpo+AQcAKXjA@mail.gmail.com
The basic idea is to make the "file collision" conflict types all behave
like add/add. These types are:
* add/add
* rename/add
* rename/rename(2to1)
* each rename/add piece of a rename/rename(1to2)/add[/add] conflict
Specific bits that make this RFC:
* Depends on another series not even in pu yet.
* In order to simplify review, I add a new common function for all
these conflict types to call in one commit, and since the function
is not yet used at that point, I wrap the function in an #ifdef 0.
In later patches, I remove the #ifdef. Is that...okay?
* There are a few FIXMEs in the code. I'm okay leaving them there,
but are others upset by them?
* Every time I attempt to complete this series, I spot more problems;
many of the merge-recursive series I've submitted since March were
issues I discovered while trying to complete this series -- or
secondary tangents discovered while working on the side-issues to
this one. I've gotten to the point of automatically second-guessing
myself on whether I could have actually completed the necessary
fixes.
Elijah Newren (7):
Add testcases for consistency in file collision conflict handling
t6036, t6042: testcases for rename collision of already conflicting
files
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
merge-recursive.c | 513 ++++++++++++++++-----------
t/t6036-recursive-corner-cases.sh | 228 +++++++++++-
t/t6042-merge-rename-corner-cases.sh | 333 ++++++++++++++++-
t/t6043-merge-rename-directories.sh | 107 +++---
4 files changed, 893 insertions(+), 288 deletions(-)
--
2.19.0.3.g98f21ceff2.dirty
next reply other threads:[~2018-10-14 2:05 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-14 2:05 Elijah Newren [this message]
2018-10-14 2:05 ` [RFC PATCH v2 1/7] Add testcases for consistency in file collision conflict handling Elijah Newren
2018-10-14 2:05 ` [RFC PATCH v2 2/7] t6036, t6042: testcases for rename collision of already conflicting files Elijah Newren
2018-10-14 2:05 ` [RFC PATCH v2 3/7] merge-recursive: new function for better colliding conflict resolutions Elijah Newren
2018-10-14 2:05 ` [RFC PATCH v2 4/7] merge-recursive: fix rename/add conflict handling Elijah Newren
2018-10-14 2:05 ` [RFC PATCH v2 5/7] merge-recursive: improve handling for rename/rename(2to1) conflicts Elijah Newren
2018-10-14 2:05 ` [RFC PATCH v2 6/7] merge-recursive: use handle_file_collision for add/add conflicts Elijah Newren
2018-10-14 2:05 ` [RFC PATCH v2 7/7] merge-recursive: improve rename/rename(1to2)/add[/add] handling Elijah Newren
2018-10-19 19:31 ` [PATCH v3 0/8] Improve path collision conflict resolutions Elijah Newren
2018-10-19 19:31 ` [PATCH v3 1/8] Add testcases for consistency in file collision conflict handling Elijah Newren
2018-10-19 19:31 ` [PATCH v3 2/8] t6036, t6042: testcases for rename collision of already conflicting files Elijah Newren
2018-10-31 14:01 ` Derrick Stolee
2018-11-01 6:57 ` Elijah Newren
2018-10-19 19:31 ` [PATCH v3 3/8] merge-recursive: increase marker length with depth of recursion Elijah Newren
2018-10-19 19:31 ` [PATCH v3 4/8] merge-recursive: new function for better colliding conflict resolutions Elijah Newren
2018-10-31 13:53 ` Derrick Stolee
2018-10-31 13:57 ` Derrick Stolee
2018-11-01 6:56 ` Elijah Newren
2018-10-19 19:31 ` [PATCH v3 5/8] merge-recursive: fix rename/add conflict handling Elijah Newren
2018-10-19 19:31 ` [PATCH v3 6/8] merge-recursive: improve handling for rename/rename(2to1) conflicts Elijah Newren
2018-10-19 19:31 ` [PATCH v3 7/8] merge-recursive: use handle_file_collision for add/add conflicts Elijah Newren
2018-10-19 19:31 ` [PATCH v3 8/8] merge-recursive: improve rename/rename(1to2)/add[/add] handling Elijah Newren
2018-10-31 15:08 ` Derrick Stolee
2018-11-01 7:01 ` Elijah Newren
2018-11-02 17:27 ` Elijah Newren
2018-11-02 17:30 ` Derrick Stolee
2018-11-02 18:53 ` [PATCH v4 00/10] Improve path collision conflict resolutions Elijah Newren
2018-11-02 18:53 ` [PATCH v4 01/10] Add testcases for consistency in file collision conflict handling Elijah Newren
2018-11-02 18:53 ` [PATCH v4 02/10] t6036, t6042: testcases for rename collision of already conflicting files Elijah Newren
2018-11-02 18:53 ` [PATCH v4 03/10] merge-recursive: increase marker length with depth of recursion Elijah Newren
2018-11-02 18:53 ` [PATCH v4 04/10] merge-recursive: new function for better colliding conflict resolutions Elijah Newren
2018-11-02 18:53 ` [PATCH v4 05/10] merge-recursive: fix rename/add conflict handling Elijah Newren
2018-11-02 18:53 ` [PATCH v4 06/10] merge-recursive: improve handling for rename/rename(2to1) conflicts Elijah Newren
2018-11-02 18:53 ` [PATCH v4 07/10] merge-recursive: use handle_file_collision for add/add conflicts Elijah Newren
2018-11-02 18:53 ` [PATCH v4 08/10] merge-recursive: improve rename/rename(1to2)/add[/add] handling Elijah Newren
2018-11-02 20:01 ` [PATCH] merge-recursive: combine error handling Derrick Stolee
2018-11-02 18:53 ` [RFC PATCH v4 09/10] fixup! merge-recursive: fix rename/add conflict handling Elijah Newren
2018-11-02 19:05 ` [PATCH v4 10/10] fixup! merge-recursive: improve rename/rename(1to2)/add[/add] handling Elijah Newren
2018-11-02 19:09 ` [PATCH v4 00/10] Improve path collision conflict resolutions Derrick Stolee
2018-11-02 20:06 ` Elijah Newren
2018-11-08 4:40 ` [PATCH v5 " Elijah Newren
2018-11-08 4:40 ` [PATCH v5 01/10] Add testcases for consistency in file collision conflict handling Elijah Newren
2018-11-08 4:40 ` [PATCH v5 02/10] t6036, t6042: testcases for rename collision of already conflicting files Elijah Newren
2018-11-08 4:40 ` [PATCH v5 03/10] merge-recursive: increase marker length with depth of recursion Elijah Newren
2018-11-08 4:40 ` [PATCH v5 04/10] merge-recursive: new function for better colliding conflict resolutions Elijah Newren
2018-11-08 4:40 ` [PATCH v5 05/10] merge-recursive: fix rename/add conflict handling Elijah Newren
2018-11-08 4:40 ` [PATCH v5 06/10] merge-recursive: improve handling for rename/rename(2to1) conflicts Elijah Newren
2018-11-08 4:40 ` [PATCH v5 07/10] merge-recursive: use handle_file_collision for add/add conflicts Elijah Newren
2018-11-08 4:40 ` [PATCH v5 08/10] merge-recursive: improve rename/rename(1to2)/add[/add] handling Elijah Newren
2018-11-08 4:40 ` [PATCH v5 09/10] t6036, t6043: increase code coverage for file collision handling Elijah Newren
2018-11-08 4:40 ` [PATCH v5 10/10] merge-recursive: combine error handling Elijah Newren
2018-11-08 5:25 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181014020537.17991-1-newren@gmail.com \
--to=newren@gmail.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.