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>
This commit is contained in:
Johannes Sixt 2012-05-04 20:13:14 +02:00 коммит произвёл Junio C Hamano
Родитель e8dde3e5f9
Коммит f94920993a
1 изменённых файлов: 16 добавлений и 5 удалений

Просмотреть файл

@ -11,14 +11,13 @@ check_not_detached () {
git symbolic-ref -q HEAD >/dev/null git symbolic-ref -q HEAD >/dev/null
} }
ORPHAN_WARNING='you are leaving .* commit.*behind'
PREV_HEAD_DESC='Previous HEAD position was' PREV_HEAD_DESC='Previous HEAD position was'
check_orphan_warning() { check_orphan_warning() {
test_i18ngrep "$ORPHAN_WARNING" "$1" && test_i18ngrep "you are leaving $2 behind" "$1" &&
test_i18ngrep ! "$PREV_HEAD_DESC" "$1" test_i18ngrep ! "$PREV_HEAD_DESC" "$1"
} }
check_no_orphan_warning() { check_no_orphan_warning() {
test_i18ngrep ! "$ORPHAN_WARNING" "$1" && test_i18ngrep ! "you are leaving .* commit.*behind" "$1" &&
test_i18ngrep "$PREV_HEAD_DESC" "$1" test_i18ngrep "$PREV_HEAD_DESC" "$1"
} }
@ -110,12 +109,24 @@ test_expect_success 'checkout warns on orphan commits' '
git checkout --detach two && git checkout --detach two &&
echo content >orphan && echo content >orphan &&
git add 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 git checkout master 2>stderr
' '
test_expect_success 'checkout warns on orphan commits: output' ' 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' ' test_expect_success 'checkout does not warn leaving ref tip' '