t2020-checkout-detach: check for the number of orphaned commits

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> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Johannes Sixt committed May 4, 2012 at 20:13 UTC f94920993a0a1ba7916618e2ab458d5d4fb21e94
1 file changed +16 -5
t/t2020-checkout-detach.sh
+16 -5
@@ -11,14 +11,13 @@ check_not_detached () {
11 git symbolic-ref -q HEAD >/dev/null
12 }
13
14 -ORPHAN_WARNING='you are leaving .* commit.*behind'
14 PREV_HEAD_DESC='Previous HEAD position was'
15 check_orphan_warning() {
17 - test_i18ngrep "$ORPHAN_WARNING" "$1" &&
16 + test_i18ngrep "you are leaving $2 behind" "$1" &&
17 test_i18ngrep ! "$PREV_HEAD_DESC" "$1"
18 }
19 check_no_orphan_warning() {
21 - test_i18ngrep ! "$ORPHAN_WARNING" "$1" &&
20 + test_i18ngrep ! "you are leaving .* commit.*behind" "$1" &&
21 test_i18ngrep "$PREV_HEAD_DESC" "$1"
22 }
23
@@ -110,12 +109,24 @@ test_expect_success 'checkout warns on orphan commits' '
109 git checkout --detach two &&
110 echo content >orphan &&
111 git add orphan &&
113 - git commit -a -m orphan &&
112 + git commit -a -m orphan1 &&
113 + echo new content >orphan &&
114 + git commit -a -m orphan2 &&
115 + orphan2=$(git rev-parse HEAD) &&
116 git checkout master 2>stderr
117 '
118
119 test_expect_success 'checkout warns on orphan commits: output' '
118 - check_orphan_warning stderr
120 + check_orphan_warning stderr "2 commits"
121 +'
122 +
123 +test_expect_success 'checkout warns orphaning 1 of 2 commits' '
124 + git checkout "$orphan2" &&
125 + git checkout HEAD^ 2>stderr
126 +'
127 +
128 +test_expect_success 'checkout warns orphaning 1 of 2 commits: output' '
129 + check_orphan_warning stderr "2 commits"
130 '
131
132 test_expect_success 'checkout does not warn leaving ref tip' '