git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* [PATCH 0/3] Add missing rename-related corner cases for merging
@ 2018-07-02 13:30 Elijah Newren
  2018-07-02 13:30 ` [PATCH 1/3] t6042: add testcase covering rename/add/delete conflict type Elijah Newren
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Elijah Newren @ 2018-07-02 13:30 UTC (permalink / raw)
  To: git; +Cc: gitster, Elijah Newren

In merging, every rename acts as a two-piece lego in terms of conflicts.
We have long realized that the other branch can (1) delete the source
side of a rename, giving a rename/delete conflict, or (2) add a file in
the way of the rename destination, giving a rename/add conflict, or (3)
have a rename of its own touching either the same destination or source
path, giving either a rename/rename(2to1) or rename/rename(1to2)
conflict.  But only in one case did we ever consider chaining these
merge-conflict lego pieces (namely with rename/rename(1to2)/add/add
conflicts).  Add some testcases that show other ways these conflicts can
be chained.

In short, any rename's source side can attach to a delete or another
rename, and any rename's destination side can attach to an add or
another rename.

This series was spurred by Robert Dailey's report back in March of a
rename case that git currently handles poorly:
  https://public-inbox.org/git/CAHd499Axo7HFviUJavigTZ6BGZCkj9iOSeNVndu1oPivkPv+5Q@mail.gmail.com/

This series adds a testcase covering the issue he reported, and then
rounds things out additional testcases demonstrating other ways rename
conflicts could be "chained" together.


Elijah Newren (3):
  t6042: add testcase covering rename/add/delete conflict type
  t6042: add testcase covering rename/rename(2to1)/delete/delete
    conflict
  t6042: add testcase covering long chains of rename conflicts

 t/t6042-merge-rename-corner-cases.sh | 245 +++++++++++++++++++++++++++
 1 file changed, 245 insertions(+)

-- 
2.18.0.130.gd703bbb5d


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-07-02 13:31 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-02 13:30 [PATCH 0/3] Add missing rename-related corner cases for merging Elijah Newren
2018-07-02 13:30 ` [PATCH 1/3] t6042: add testcase covering rename/add/delete conflict type Elijah Newren
2018-07-02 13:30 ` [PATCH 2/3] t6042: add testcase covering rename/rename(2to1)/delete/delete conflict Elijah Newren
2018-07-02 13:30 ` [PATCH 3/3] t6042: add testcase covering long chains of rename conflicts Elijah Newren

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).