Git Mailing List Archive on lore.kernel.org
 help / color / Atom feed
From: "Elijah Newren via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: Elijah Newren <newren@gmail.com>,
	Derrick Stolee <stolee@gmail.com>,
	Elijah Newren <newren@gmail.com>
Subject: [PATCH v2 00/10] merge-ort: add more handling of basic conflict types
Date: Fri, 01 Jan 2021 02:34:38 +0000
Message-ID: <pull.815.v2.git.1609468488.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.815.git.1608270687.gitgitgadget@gmail.com>

This series depends on en/merge-ort-2 (it does not depend on en/merge-ort-3
or en/merge-ort-recursive).

This series adds handling of additional basic conflict types (directory/file
conflicts, three-way content merging, very basic submodule divergence
reconciliation, and different filetypes). This series drops the number of
test failures under GIT_TEST_MERGE_ALGORITHM=ort by 211 (from 1448 to 1237).

Further, if en/merge-tests, en/merge-ort-3, en/merge-ort-recursive, and this
series are all merged down (in any order), then collectively they drop the
number of test failure under GIT_TEST_MERGE_ALGORITHM=ort from 1448 down to
60.

Changes since v1:

 * Wait to remove comment about a die-not-implemented code block until the
   commit where we actually remove it (spotted by Stollee)

Elijah Newren (10):
  merge-ort: handle D/F conflict where directory disappears due to merge
  merge-ort: handle directory/file conflicts that remain
  merge-ort: implement unique_path() helper
  merge-ort: handle book-keeping around two- and three-way content merge
  merge-ort: flesh out implementation of handle_content_merge()
  merge-ort: copy and adapt merge_3way() from merge-recursive.c
  merge-ort: copy and adapt merge_submodule() from merge-recursive.c
  merge-ort: implement format_commit()
  merge-ort: copy find_first_merges() implementation from
    merge-recursive.c
  merge-ort: add handling for different types of files at same path

 merge-ort.c | 671 ++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 653 insertions(+), 18 deletions(-)


base-commit: c5a6f65527aa3b6f5d7cf25437a88d8727ab0646
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-815%2Fnewren%2Fort-conflict-handling-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-815/newren/ort-conflict-handling-v2
Pull-Request: https://github.com/gitgitgadget/git/pull/815

Range-diff vs v1:

  1:  382a009c18e !  1:  1869e497482 merge-ort: handle D/F conflict where directory disappears due to merge
     @@ merge-ort.c: static void process_entry(struct merge_options *opt,
       		die("Not yet implemented.");
       	}
       
     - 	/*
     - 	 * NOTE: Below there is a long switch-like if-elseif-elseif... block
     - 	 *       which the code goes through even for the df_conflict cases
     --	 *       above.  Well, it will once we don't die-not-implemented above.
     -+	 *       above.
     - 	 */
     - 	if (ci->match_mask) {
     - 		ci->merged.clean = 1;
  2:  46953226ba8 !  2:  54f9be41a8a merge-ort: handle directory/file conflicts that remain
     @@ merge-ort.c: static void process_entry(struct merge_options *opt,
       	}
       
       	/*
     + 	 * NOTE: Below there is a long switch-like if-elseif-elseif... block
     + 	 *       which the code goes through even for the df_conflict cases
     +-	 *       above.  Well, it will once we don't die-not-implemented above.
     ++	 *       above.
     + 	 */
     + 	if (ci->match_mask) {
     + 		ci->merged.clean = 1;
  3:  6ac555b3c0f =  3:  63fed5e49a7 merge-ort: implement unique_path() helper
  4:  4c641ec19d5 =  4:  d0fab13c78a merge-ort: handle book-keeping around two- and three-way content merge
  5:  0e7321e67f8 =  5:  69129a20edc merge-ort: flesh out implementation of handle_content_merge()
  6:  611141f24af =  6:  d1cc76ac620 merge-ort: copy and adapt merge_3way() from merge-recursive.c
  7:  4696f6c2d95 =  7:  2ddf6ece9d0 merge-ort: copy and adapt merge_submodule() from merge-recursive.c
  8:  a640cc0effc =  8:  b0bfada5d81 merge-ort: implement format_commit()
  9:  b898876b119 =  9:  334cc7c65a6 merge-ort: copy find_first_merges() implementation from merge-recursive.c
 10:  0a5778df253 = 10:  34eb647df40 merge-ort: add handling for different types of files at same path

-- 
gitgitgadget

  parent reply index

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-18  5:51 [PATCH " Elijah Newren via GitGitGadget
2020-12-18  5:51 ` [PATCH 01/10] merge-ort: handle D/F conflict where directory disappears due to merge Elijah Newren via GitGitGadget
2020-12-30 14:06   ` Derrick Stolee
2020-12-30 15:13     ` Elijah Newren
2020-12-31 11:17       ` Derrick Stolee
2020-12-31 17:13         ` Elijah Newren
2020-12-18  5:51 ` [PATCH 02/10] merge-ort: handle directory/file conflicts that remain Elijah Newren via GitGitGadget
2020-12-18  5:51 ` [PATCH 03/10] merge-ort: implement unique_path() helper Elijah Newren via GitGitGadget
2020-12-30 14:16   ` Derrick Stolee
2020-12-30 15:10     ` Elijah Newren
2020-12-31 11:19       ` Derrick Stolee
2020-12-18  5:51 ` [PATCH 04/10] merge-ort: handle book-keeping around two- and three-way content merge Elijah Newren via GitGitGadget
2020-12-18  5:51 ` [PATCH 05/10] merge-ort: flesh out implementation of handle_content_merge() Elijah Newren via GitGitGadget
2020-12-18  5:51 ` [PATCH 06/10] merge-ort: copy and adapt merge_3way() from merge-recursive.c Elijah Newren via GitGitGadget
2020-12-18  5:51 ` [PATCH 07/10] merge-ort: copy and adapt merge_submodule() " Elijah Newren via GitGitGadget
2020-12-18  5:51 ` [PATCH 08/10] merge-ort: implement format_commit() Elijah Newren via GitGitGadget
2020-12-18  5:51 ` [PATCH 09/10] merge-ort: copy find_first_merges() implementation from merge-recursive.c Elijah Newren via GitGitGadget
2020-12-18  5:51 ` [PATCH 10/10] merge-ort: add handling for different types of files at same path Elijah Newren via GitGitGadget
2020-12-29  0:44 ` [PATCH 00/10] merge-ort: add more handling of basic conflict types Elijah Newren
2021-01-01  2:34 ` Elijah Newren via GitGitGadget [this message]
2021-01-01  2:34   ` [PATCH v2 01/10] merge-ort: handle D/F conflict where directory disappears due to merge Elijah Newren via GitGitGadget
2021-01-01  2:34   ` [PATCH v2 02/10] merge-ort: handle directory/file conflicts that remain Elijah Newren via GitGitGadget
2021-01-01  2:34   ` [PATCH v2 03/10] merge-ort: implement unique_path() helper Elijah Newren via GitGitGadget
2021-01-01  2:34   ` [PATCH v2 04/10] merge-ort: handle book-keeping around two- and three-way content merge Elijah Newren via GitGitGadget
2021-01-01  2:34   ` [PATCH v2 05/10] merge-ort: flesh out implementation of handle_content_merge() Elijah Newren via GitGitGadget
2021-03-04 16:28     ` A merge-ort TODO comment, and how to test merge-ort? Ævar Arnfjörð Bjarmason
2021-03-04 19:43       ` Elijah Newren
2021-03-04 21:29         ` Ævar Arnfjörð Bjarmason
2021-03-04 22:45           ` Elijah Newren
2021-03-08 14:49             ` Ævar Arnfjörð Bjarmason
2021-01-01  2:34   ` [PATCH v2 06/10] merge-ort: copy and adapt merge_3way() from merge-recursive.c Elijah Newren via GitGitGadget
2021-01-01  2:34   ` [PATCH v2 07/10] merge-ort: copy and adapt merge_submodule() " Elijah Newren via GitGitGadget
2021-01-01  2:34   ` [PATCH v2 08/10] merge-ort: implement format_commit() Elijah Newren via GitGitGadget
2021-01-01  2:34   ` [PATCH v2 09/10] merge-ort: copy find_first_merges() implementation from merge-recursive.c Elijah Newren via GitGitGadget
2021-01-01  2:34   ` [PATCH v2 10/10] merge-ort: add handling for different types of files at same path Elijah Newren via GitGitGadget
2021-01-05 14:23   ` [PATCH v2 00/10] merge-ort: add more handling of basic conflict types Derrick Stolee
2021-01-06 19:20     ` Elijah Newren

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=pull.815.v2.git.1609468488.gitgitgadget@gmail.com \
    --to=gitgitgadget@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=newren@gmail.com \
    --cc=stolee@gmail.com \
    /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

Git Mailing List Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/git/0 git/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 git git/ https://lore.kernel.org/git \
		git@vger.kernel.org
	public-inbox-index git

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.git


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git