summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: a91df69)
raw | patch | inline | side by side (parent: a91df69)
author | Jeff King <peff@peff.net> | |
Sun, 20 Mar 2011 09:04:16 +0000 (05:04 -0400) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Sun, 20 Mar 2011 20:32:44 +0000 (13:32 -0700) |
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>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
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>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t2020-checkout-detach.sh | patch | blob | history |
index 00421453ba26327b929fa7b5133a3072fce2bb03..bfeb2a65129a7d573a311037c923ae92d6d97f22 100755 (executable)
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
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
'
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