branch: allow a no-op "branch -M <current-branch> HEAD"
[gitweb.git] / t / t2020-checkout-detach.sh
index 569b27fe8d488833c3ec0d9952ae064764a0183f..068fba4c8e8706aa615d0401da1da47901113156 100755 (executable)
@@ -12,11 +12,14 @@ check_not_detached () {
 }
 
 ORPHAN_WARNING='you are leaving .* commit.*behind'
+PREV_HEAD_DESC='Previous HEAD position was'
 check_orphan_warning() {
-       grep "$ORPHAN_WARNING" "$1"
+       test_i18ngrep "$ORPHAN_WARNING" "$1" &&
+       test_i18ngrep ! "$PREV_HEAD_DESC" "$1"
 }
 check_no_orphan_warning() {
-       ! grep "$ORPHAN_WARNING" "$1"
+       test_i18ngrep ! "$ORPHAN_WARNING" "$1" &&
+       test_i18ngrep "$PREV_HEAD_DESC" "$1"
 }
 
 reset () {
@@ -108,21 +111,30 @@ test_expect_success 'checkout warns on orphan commits' '
        echo content >orphan &&
        git add orphan &&
        git commit -a -m orphan &&
-       git checkout master 2>stderr &&
+       git checkout master 2>stderr
+'
+
+test_expect_success 'checkout warns on orphan commits: output' '
        check_orphan_warning stderr
 '
 
 test_expect_success 'checkout does not warn leaving ref tip' '
        reset &&
        git checkout --detach two &&
-       git checkout master 2>stderr &&
+       git checkout master 2>stderr
+'
+
+test_expect_success 'checkout does not warn leaving ref tip' '
        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 &&
+       git checkout master 2>stderr
+'
+
+test_expect_success 'checkout does not warn leaving reachable commit' '
        check_no_orphan_warning stderr
 '