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

[PATCH 1/3] checkout: add basic tests for detached-orphan warning

From
Jeff King <peff@peff.net>
Date
Mar 20, 2011, 09:04 UTC
Message-ID
<20110320090416.GA15948@sigill.intra.peff.net>
In-Reply-To
<20110320090111.GA15641@sigill.intra.peff.net>

Commit 8e2dc6ac added a warning when we leave a detached HEAD whose commit is not reachable from any ref tip. Let's add a few basic tests to make sure it works.

Signed-off-by: Jeff King <peff@peff.net>
---
 t/t2020-checkout-detach.sh |   34 ++++++++++++++++++++++++++++++++++
 1 files changed, 34 insertions(+), 0 deletions(-)
diff --git a/t/t2020-checkout-detach.sh b/t/t2020-checkout-detach.sh
index 0042145..bfeb2a6 100755
--- a/t/t2020-checkout-detach.sh
+++ b/t/t2020-checkout-detach.sh
@@ -11,6 +11,14 @@ check_not_detached () {
 	git symbolic-ref -q HEAD >/dev/null
 }
 
+ORPHAN_WARNING='you are leaving .* commit.*behind'
+check_orphan_warning() {
+	grep "$ORPHAN_WARNING" "$1"
+}
+check_no_orphan_warning() {
+	! grep "$ORPHAN_WARNING" "$1"
+}
+
 reset () {
 	git checkout master &&
 	check_not_detached
@@ -19,6 +27,8 @@ reset () {
 test_expect_success 'setup' '
 	test_commit one &&
 	test_commit two &&
+	test_commit three && git tag -d three &&
+	test_commit four && git tag -d four &&
 	git branch branch &&
 	git tag tag
 '
@@ -92,4 +102,28 @@ test_expect_success 'checkout --detach moves HEAD' '
 	git diff --exit-code two
 '
 
+test_expect_success 'checkout warns on orphan commits' '
+	reset &&
+	git checkout --detach two &&
+	echo content >orphan &&
+	git add orphan &&
+	git commit -a -m orphan &&
+	git checkout master 2>stderr &&
+	check_orphan_warning stderr
+'
+
+test_expect_success 'checkout does not warn leaving ref tip' '
+	reset &&
+	git checkout --detach two &&
+	git checkout master 2>stderr &&
+	check_no_orphan_warning stderr
+'
+
+test_expect_success 'checkout does not warn leaving reachable commit' '
+	reset &&
+	git checkout --detach HEAD^ &&
+	git checkout master 2>stderr &&
+	check_no_orphan_warning stderr
+'
+
 test_done
-- 
1.7.2.5.10.g62fe7
Previous: Jeff KingNext: Jeff King
Message 6 of 28 in “[bug] git checkout lies about number of ahead commits when switching from detached HEAD”
  1. Piotr KrukowieckiMar 19, 2011
  2. Jeff KingMar 19, 2011
  3. Jeff KingMar 19, 2011
  4. Junio C HamanoMar 20, 2011
  5. Jeff KingMar 20, 2011
  6. 1/3 checkout: add basic tests for detached-orphan warningJeff King, Mar 20, 2011
  7. 2/3 checkout: clear commit marks after detached-orphan checkJeff King, Mar 20, 2011
  8. Junio C HamanoMar 20, 2011
  9. i18n: use test_i18ncmp in t2020 (checkout --detach)Jonathan Nieder, Apr 13, 2012
  10. checkout --detached test: write supporting files before start of testsJonathan Nieder, Apr 13, 2012
  11. Jeff KingApr 13, 2012
  12. Jonathan NiederApr 13, 2012
  13. Jeff KingApr 14, 2012
  14. Jeff KingApr 13, 2012
  15. Jonathan NiederApr 13, 2012
  16. Jeff KingApr 14, 2012
  17. 0/3 Re: i18n: use test_i18ncmp in t2020 (checkout --detach)Jonathan Nieder, Apr 14, 2012
  18. 1/3 test: do not rely on US English tracking-info messagesJonathan Nieder, Apr 14, 2012
  19. 2/3 test: use test_i18ncmp for "Patch format detection failed" messageJonathan Nieder, Apr 14, 2012
  20. 3/3 test: am of empty patch should not succeedJonathan Nieder, Apr 14, 2012
  21. Jeff KingApr 14, 2012
  22. Jonathan NiederApr 14, 2012
  23. Jeff KingApr 14, 2012
  24. Jonathan NiederApr 14, 2012
  25. 3/3 checkout: tweak detached-orphan warning formatJeff King, Mar 20, 2011
  26. Junio C HamanoMar 20, 2011
  27. Jeff KingMar 21, 2011
  28. Junio C HamanoMar 21, 2011

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.