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

[PATCH v3 07/11] t6416, t6423: clarify some comments and fix some typos

From
Elijah Newren via GitGitGadget <gitgitgadget@gmail.com>
Date
Aug 10, 2020, 22:29 UTC
Message-ID
<783ebb65768b2ca810bb11ae1845d1e1db346ff8.1597098559.git.gitgitgadget@gmail.com>
In-Reply-To
<pull.827.v3.git.git.1597098559.gitgitgadget@gmail.com>
From: Elijah Newren <newren@gmail.com>
Signed-off-by: Elijah Newren <newren@gmail.com>
---
 t/t6416-recursive-corner-cases.sh   |  2 +-
 t/t6423-merge-rename-directories.sh | 25 ++++++++++++-------------
 2 files changed, 13 insertions(+), 14 deletions(-)
diff --git a/t/t6416-recursive-corner-cases.sh b/t/t6416-recursive-corner-cases.sh
index d272b418e4..fd98989b14 100755
--- a/t/t6416-recursive-corner-cases.sh
+++ b/t/t6416-recursive-corner-cases.sh
@@ -452,7 +452,7 @@ test_expect_success 'git detects conflict merging criss-cross+modify/delete, rev
 #
 # So choice 5 at least provides some kind of conflict for the original case,
 # and can merge cleanly as expected with D1 and E3.  It also made things just
-# slightly funny for merging D1 and e$, where E4 is defined as:
+# slightly funny for merging D1 and E4, where E4 is defined as:
 #   Commit E4: Merge B & C, modifying 'a' and renaming to 'a2', and deleting 'a/'
 # in this case, we'll get a rename/rename(1to2) conflict because a~$UNIQUE
 # gets renamed to 'a' in D1 and to 'a2' in E4.  But that's better than having
diff --git a/t/t6423-merge-rename-directories.sh b/t/t6423-merge-rename-directories.sh
index d227e15944..bd0f17a3be 100755
--- a/t/t6423-merge-rename-directories.sh
+++ b/t/t6423-merge-rename-directories.sh
@@ -2260,24 +2260,23 @@ test_expect_success '8d: rename/delete...or not?' '
 #   Commit B: w/{b,c}, z/d
 #
 # Possible Resolutions:
-#   w/o dir-rename detection: z/d, CONFLICT(z/b -> y/b vs. w/b),
-#                                  CONFLICT(z/c -> y/c vs. w/c)
-#   Currently expected:       y/d, CONFLICT(z/b -> y/b vs. w/b),
-#                                  CONFLICT(z/c -> y/c vs. w/c)
-#   Optimal:                  ??
+#   if z not considered renamed: z/d, CONFLICT(z/b -> y/b vs. w/b),
+#                                     CONFLICT(z/c -> y/c vs. w/c)
+#   if z->y rename considered:   y/d, CONFLICT(z/b -> y/b vs. w/b),
+#                                     CONFLICT(z/c -> y/c vs. w/c)
+#   Optimal:                     ??
 #
 # Notes: In commit A, directory z got renamed to y.  In commit B, directory z
 #        did NOT get renamed; the directory is still present; instead it is
 #        considered to have just renamed a subset of paths in directory z
-#        elsewhere.  Therefore, the directory rename done in commit A to z/
-#        applies to z/d and maps it to y/d.
+#        elsewhere.  However, this is much like testcase 6b (where commit B
+#        moves all the original paths out of z/ but opted to keep d
+#        within z/).  This makes it hard to judge where d should end up.
 #
 #        It's possible that users would get confused about this, but what
-#        should we do instead?  Silently leaving at z/d seems just as bad or
-#        maybe even worse.  Perhaps we could print a big warning about z/d
-#        and how we're moving to y/d in this case, but when I started thinking
-#        about the ramifications of doing that, I didn't know how to rule out
-#        that opening other weird edge and corner cases so I just punted.
+#        should we do instead?  It's not at all clear to me whether z/d or
+#        y/d or something else is a better resolution here, and other cases
+#        start getting really tricky, so I just picked one.
 
 test_setup_8e () {
 	test_create_repo 8e &&
@@ -4405,7 +4404,7 @@ test_expect_success '13b(info): messages for transitive rename with conflicted c
 #   Commit O: z/{b,c},   x/{d,e}
 #   Commit A: y/{b,c,d}, x/e
 #   Commit B: z/{b,c,d}, x/e
-#   Expected: y/{b,c,d}, with info or conflict messages for d (
+#   Expected: y/{b,c,d}, x/e, with info or conflict messages for d
 #             A: renamed x/d -> z/d; B: renamed z/ -> y/ AND renamed x/d to y/d
 #             One could argue A had partial knowledge of what was done with
 #             d and B had full knowledge, but that's a slippery slope as
-- 
gitgitgadget
Previous: Elijah Newren via GitGitGadgetNext: Elijah Newren via GitGitGadget
Message 21 of 28 in “Collect merge-related tests to t64xx”
  1. Collect merge-related tests to t64xxElijah Newren via GitGitGadget, Aug 5, 2020
  2. 00/11 Start preparing merge-related tests to work with multiple merge backendsElijah Newren via GitGitGadget, Aug 8, 2020
  3. 02/11 t6418: tighten delete/normalize conflict testcaseElijah Newren via GitGitGadget, Aug 8, 2020
  4. 01/11 Collect merge-related tests to t64xxElijah Newren via GitGitGadget, Aug 8, 2020
  5. 04/11 t6416, t6422: fix incorrect untracked file countElijah Newren via GitGitGadget, Aug 8, 2020
  6. Eric SunshineAug 9, 2020
  7. Elijah NewrenAug 9, 2020
  8. 05/11 t6423: fix test setup for a couple testsElijah Newren via GitGitGadget, Aug 8, 2020
  9. 09/11 t6422, t6426: be more flexible for add/add conflicts involving renamesElijah Newren via GitGitGadget, Aug 8, 2020
  10. 10/11 t642[23]: be more flexible for add/add conflicts involving pair renamesElijah Newren via GitGitGadget, Aug 8, 2020
  11. 08/11 t6423: add an explanation about why one of the tests does not passElijah Newren via GitGitGadget, Aug 8, 2020
  12. 11/11 t6425: be more flexible with rename/delete conflict messagesElijah Newren via GitGitGadget, Aug 8, 2020
  13. 07/11 t6416, t6423: clarify some comments and fix some typosElijah Newren via GitGitGadget, Aug 8, 2020
  14. 06/11 t6422: fix multiple errors with the mod6 test expectationsElijah Newren via GitGitGadget, Aug 8, 2020
  15. 03/11 t6422: fix bad check against missing fileElijah Newren via GitGitGadget, Aug 8, 2020
  16. Eric SunshineAug 9, 2020
  17. 00/11 Start preparing merge-related tests to work with multiple merge backendsElijah Newren via GitGitGadget, Aug 10, 2020
  18. 01/11 Collect merge-related tests to t64xxElijah Newren via GitGitGadget, Aug 10, 2020
  19. 05/11 t6423: fix test setup for a couple testsElijah Newren via GitGitGadget, Aug 10, 2020
  20. 06/11 t6422: fix multiple errors with the mod6 test expectationsElijah Newren via GitGitGadget, Aug 10, 2020
  21. 07/11 t6416, t6423: clarify some comments and fix some typosElijah Newren via GitGitGadget, Aug 10, 2020
  22. 08/11 t6423: add an explanation about why one of the tests does not passElijah Newren via GitGitGadget, Aug 10, 2020
  23. 09/11 t6422, t6426: be more flexible for add/add conflicts involving renamesElijah Newren via GitGitGadget, Aug 10, 2020
  24. 04/11 t6416, t6422: fix incorrect untracked file countElijah Newren via GitGitGadget, Aug 10, 2020
  25. 10/11 t642[23]: be more flexible for add/add conflicts involving pair renamesElijah Newren via GitGitGadget, Aug 10, 2020
  26. 02/11 t6418: tighten delete/normalize conflict testcaseElijah Newren via GitGitGadget, Aug 10, 2020
  27. 11/11 t6425: be more flexible with rename/delete conflict messagesElijah Newren via GitGitGadget, Aug 10, 2020
  28. 03/11 t6422: fix bad check against missing fileElijah Newren via GitGitGadget, Aug 10, 2020

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.