git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 00/10] merge-ort: add more handling of basic conflict types

From
Elijah Newren via GitGitGadget <gitgitgadget@gmail.com>
Date
Jan 1, 2021, 02:34 UTC
Message-ID
<pull.815.v2.git.1609468488.gitgitgadget@gmail.com>
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
Previous: Elijah NewrenNext: Elijah Newren via GitGitGadget
Message 20 of 37 in “merge-ort: add more handling of basic conflict types”
  1. 00/10 merge-ort: add more handling of basic conflict typesElijah Newren via GitGitGadget, Dec 18, 2020
  2. 01/10 merge-ort: handle D/F conflict where directory disappears due to mergeElijah Newren via GitGitGadget, Dec 18, 2020
  3. Derrick StoleeDec 30, 2020
  4. Elijah NewrenDec 30, 2020
  5. Derrick StoleeDec 31, 2020
  6. Elijah NewrenDec 31, 2020
  7. 03/10 merge-ort: implement unique_path() helperElijah Newren via GitGitGadget, Dec 18, 2020
  8. Derrick StoleeDec 30, 2020
  9. Elijah NewrenDec 30, 2020
  10. Derrick StoleeDec 31, 2020
  11. 04/10 merge-ort: handle book-keeping around two- and three-way content mergeElijah Newren via GitGitGadget, Dec 18, 2020
  12. 02/10 merge-ort: handle directory/file conflicts that remainElijah Newren via GitGitGadget, Dec 18, 2020
  13. 05/10 merge-ort: flesh out implementation of handle_content_merge()Elijah Newren via GitGitGadget, Dec 18, 2020
  14. 07/10 merge-ort: copy and adapt merge_submodule() from merge-recursive.cElijah Newren via GitGitGadget, Dec 18, 2020
  15. 09/10 merge-ort: copy find_first_merges() implementation from merge-recursive.cElijah Newren via GitGitGadget, Dec 18, 2020
  16. 10/10 merge-ort: add handling for different types of files at same pathElijah Newren via GitGitGadget, Dec 18, 2020
  17. 06/10 merge-ort: copy and adapt merge_3way() from merge-recursive.cElijah Newren via GitGitGadget, Dec 18, 2020
  18. 08/10 merge-ort: implement format_commit()Elijah Newren via GitGitGadget, Dec 18, 2020
  19. Elijah NewrenDec 29, 2020
  20. 00/10 merge-ort: add more handling of basic conflict typesElijah Newren via GitGitGadget, Jan 1, 2021
  21. 01/10 merge-ort: handle D/F conflict where directory disappears due to mergeElijah Newren via GitGitGadget, Jan 1, 2021
  22. 05/10 merge-ort: flesh out implementation of handle_content_merge()Elijah Newren via GitGitGadget, Jan 1, 2021
  23. A merge-ort TODO comment, and how to test merge-ort?Ævar Arnfjörð Bjarmason, Mar 4, 2021
  24. Elijah NewrenMar 4, 2021
  25. Ævar Arnfjörð BjarmasonMar 4, 2021
  26. Elijah NewrenMar 4, 2021
  27. Ævar Arnfjörð BjarmasonMar 8, 2021
  28. 03/10 merge-ort: implement unique_path() helperElijah Newren via GitGitGadget, Jan 1, 2021
  29. 04/10 merge-ort: handle book-keeping around two- and three-way content mergeElijah Newren via GitGitGadget, Jan 1, 2021
  30. 07/10 merge-ort: copy and adapt merge_submodule() from merge-recursive.cElijah Newren via GitGitGadget, Jan 1, 2021
  31. 02/10 merge-ort: handle directory/file conflicts that remainElijah Newren via GitGitGadget, Jan 1, 2021
  32. 09/10 merge-ort: copy find_first_merges() implementation from merge-recursive.cElijah Newren via GitGitGadget, Jan 1, 2021
  33. 08/10 merge-ort: implement format_commit()Elijah Newren via GitGitGadget, Jan 1, 2021
  34. 10/10 merge-ort: add handling for different types of files at same pathElijah Newren via GitGitGadget, Jan 1, 2021
  35. 06/10 merge-ort: copy and adapt merge_3way() from merge-recursive.cElijah Newren via GitGitGadget, Jan 1, 2021
  36. Derrick StoleeJan 5, 2021
  37. Elijah NewrenJan 6, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.