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

[PATCH 1/2] t2020-checkout-detach: check for the number of orphaned commits

From
Johannes Sixt <j6t@kdbg.org>
Date
May 4, 2012, 18:13 UTC
Message-ID
<4FA41C3A.9080002@kdbg.org>

Change the test that orphans commits to leave 2 commits behind. Add a test that leaves only one of these behind.

The next patch will truncate the list of orphaned commits earlier. With this preliminary update, its effect will become more obvious.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
---
 I noticed that when you have a detached history, and walk back only part
 of it, the warning lists all of the detached history even if the part
 that ends at the new HEAD is not orphaned. This patch prepares the tests,
 and the next patch changes git-checkout.
 t/t2020-checkout-detach.sh | 21 ++++++++++++++++-----
 1 file changed, 16 insertions(+), 5 deletions(-)
diff --git a/t/t2020-checkout-detach.sh b/t/t2020-checkout-detach.sh
index b37ce25..1839b32 100755
--- a/t/t2020-checkout-detach.sh
+++ b/t/t2020-checkout-detach.sh
@@ -11,14 +11,13 @@ check_not_detached () {
 	git symbolic-ref -q HEAD >/dev/null
 }
 
-ORPHAN_WARNING='you are leaving .* commit.*behind'
 PREV_HEAD_DESC='Previous HEAD position was'
 check_orphan_warning() {
-	test_i18ngrep "$ORPHAN_WARNING" "$1" &&
+	test_i18ngrep "you are leaving $2 behind" "$1" &&
 	test_i18ngrep ! "$PREV_HEAD_DESC" "$1"
 }
 check_no_orphan_warning() {
-	test_i18ngrep ! "$ORPHAN_WARNING" "$1" &&
+	test_i18ngrep ! "you are leaving .* commit.*behind" "$1" &&
 	test_i18ngrep "$PREV_HEAD_DESC" "$1"
 }
 
@@ -110,12 +109,24 @@ test_expect_success 'checkout warns on orphan commits' '
 	git checkout --detach two &&
 	echo content >orphan &&
 	git add orphan &&
-	git commit -a -m orphan &&
+	git commit -a -m orphan1 &&
+	echo new content >orphan &&
+	git commit -a -m orphan2 &&
+	orphan2=$(git rev-parse HEAD) &&
 	git checkout master 2>stderr
 '
 
 test_expect_success 'checkout warns on orphan commits: output' '
-	check_orphan_warning stderr
+	check_orphan_warning stderr "2 commits"
+'
+
+test_expect_success 'checkout warns orphaning 1 of 2 commits' '
+	git checkout "$orphan2" &&
+	git checkout HEAD^ 2>stderr
+'
+
+test_expect_success 'checkout warns orphaning 1 of 2 commits: output' '
+	check_orphan_warning stderr "2 commits"
 '
 
 test_expect_success 'checkout does not warn leaving ref tip' '
-- 
1.7.10.1.462.g199f411
Next: Johannes Sixt
Message 1 of 4 in “t2020-checkout-detach: check for the number of orphaned commits”
  1. 1/2 t2020-checkout-detach: check for the number of orphaned commitsJohannes Sixt, May 4, 2012
  2. 2/2 checkout (detached): truncate list of orphaned commits at the new HEADJohannes Sixt, May 4, 2012
  3. Junio C HamanoMay 4, 2012
  4. Jeff KingMay 5, 2012

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.