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

[PATCH 6/7] t2011: exercise D/F conflicts with HEAD with the reftable backend

From
Patrick Steinhardt <ps@pks.im>
Date
Feb 9, 2024, 07:23 UTC
Message-ID
<64d2548bbc47c4131aaf1684e6df2185034ba447.1707463221.git.ps@pks.im>
In-Reply-To
<cover.1707463221.git.ps@pks.im>

Some of the tests in t2011 exercise whether it is possible to move away from a symbolic HEAD ref whose target ref has a directory-file conflict with another, preexisting ref. These tests don't use git-symbolic-ref(1) but manually write HEAD. This is supposedly done to avoid using logic that we're about to exercise, but it makes it impossible to verify whether the logic also works for ref backends other than "files".

Refactor the code to use git-symbolic-ref(1) instead so that the tests work with the "reftable" backend, as well. We already have lots of tests in t1404 that ensure that both git-update-ref(1) and git-symbolic-ref(1) work in such a scenario, so it should be safe to rely on it here.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
---
 t/t2011-checkout-invalid-head.sh | 17 +++++++----------
 1 file changed, 7 insertions(+), 10 deletions(-)
diff --git a/t/t2011-checkout-invalid-head.sh b/t/t2011-checkout-invalid-head.sh
index 3c8135831b..04f53b1ea1 100755
--- a/t/t2011-checkout-invalid-head.sh
+++ b/t/t2011-checkout-invalid-head.sh
@@ -29,36 +29,33 @@ test_expect_success REFFILES 'checkout notices failure to lock HEAD' '
 	test_must_fail git checkout -b other
 '
 
-test_expect_success REFFILES 'create ref directory/file conflict scenario' '
+test_expect_success 'create ref directory/file conflict scenario' '
 	git update-ref refs/heads/outer/inner main &&
-
-	# do not rely on symbolic-ref to get a known state,
-	# as it may use the same code we are testing
 	reset_to_df () {
-		echo "ref: refs/heads/outer" >.git/HEAD
+		git symbolic-ref HEAD refs/heads/outer
 	}
 '
 
-test_expect_success REFFILES 'checkout away from d/f HEAD (unpacked, to branch)' '
+test_expect_success 'checkout away from d/f HEAD (unpacked, to branch)' '
 	reset_to_df &&
 	git checkout main
 '
 
-test_expect_success REFFILES 'checkout away from d/f HEAD (unpacked, to detached)' '
+test_expect_success 'checkout away from d/f HEAD (unpacked, to detached)' '
 	reset_to_df &&
 	git checkout --detach main
 '
 
-test_expect_success REFFILES 'pack refs' '
+test_expect_success 'pack refs' '
 	git pack-refs --all --prune
 '
 
-test_expect_success REFFILES 'checkout away from d/f HEAD (packed, to branch)' '
+test_expect_success 'checkout away from d/f HEAD (packed, to branch)' '
 	reset_to_df &&
 	git checkout main
 '
 
-test_expect_success REFFILES 'checkout away from d/f HEAD (packed, to detached)' '
+test_expect_success 'checkout away from d/f HEAD (packed, to detached)' '
 	reset_to_df &&
 	git checkout --detach main
 '
-- 
2.43.GIT
Previous: Patrick SteinhardtNext: Patrick Steinhardt
Message 15 of 28 in “t: drop more REFFILES prereqs”
  1. 0/7 t: drop more REFFILES prereqsPatrick Steinhardt, Feb 9, 2024
  2. 1/7 t: move tests exercising the "files" backendPatrick Steinhardt, Feb 9, 2024
  3. Junio C HamanoFeb 14, 2024
  4. 2/7 t0410: enable tests with extensions with non-default repo formatPatrick Steinhardt, Feb 9, 2024
  5. Junio C HamanoFeb 14, 2024
  6. Patrick SteinhardtFeb 15, 2024
  7. Junio C HamanoFeb 15, 2024
  8. 3/7 t1400: exercise reflog with gaps with reftable backendPatrick Steinhardt, Feb 9, 2024
  9. Junio C HamanoFeb 14, 2024
  10. 4/7 t1404: make D/F conflict tests compatible with reftable backendPatrick Steinhardt, Feb 9, 2024
  11. Junio C HamanoFeb 14, 2024
  12. 5/7 t1405: remove unneeded cleanup stepPatrick Steinhardt, Feb 9, 2024
  13. Junio C HamanoFeb 14, 2024
  14. Patrick SteinhardtFeb 15, 2024
  15. 6/7 t2011: exercise D/F conflicts with HEAD with the reftable backendPatrick Steinhardt, Feb 9, 2024
  16. 7/7 t7003: ensure filter-branch prunes reflogs with the reftable backendPatrick Steinhardt, Feb 9, 2024
  17. Karthik NayakFeb 11, 2024
  18. Junio C HamanoFeb 14, 2024
  19. Patrick SteinhardtFeb 15, 2024
  20. 0/7 t: drop more REFFILES prereqsPatrick Steinhardt, Feb 15, 2024
  21. 1/7 t: move tests exercising the "files" backendPatrick Steinhardt, Feb 15, 2024
  22. 2/7 t0410: convert tests to use DEFAULT_REPO_FORMAT prereqPatrick Steinhardt, Feb 15, 2024
  23. Junio C HamanoFeb 15, 2024
  24. 3/7 t1400: exercise reflog with gaps with reftable backendPatrick Steinhardt, Feb 15, 2024
  25. 4/7 t1404: make D/F conflict tests compatible with reftable backendPatrick Steinhardt, Feb 15, 2024
  26. 5/7 t1405: remove unneeded cleanup stepPatrick Steinhardt, Feb 15, 2024
  27. 6/7 t2011: exercise D/F conflicts with HEAD with the reftable backendPatrick Steinhardt, Feb 15, 2024
  28. 7/7 t7003: ensure filter-branch prunes reflogs with the reftable backendPatrick Steinhardt, Feb 15, 2024

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.