Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.kernel.org/pub/scm/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2011-03-20 12:04:16 +0300
committerJunio C Hamano <gitster@pobox.com>2011-03-20 23:32:44 +0300
commit493dd6ed5b46659d7e20aaef00f97e279ce1c4cb (patch)
tree63a0e865f31c578d76fcc9b12884100dae5d8c3d /t/t2020-checkout-detach.sh
parenta91df69cbb5ced7837525106ff57ff349180770b (diff)
checkout: add basic tests for detached-orphan warning
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>
Diffstat (limited to 't/t2020-checkout-detach.sh')
-rwxr-xr-xt/t2020-checkout-detach.sh34
1 files changed, 34 insertions, 0 deletions
diff --git a/t/t2020-checkout-detach.sh b/t/t2020-checkout-detach.sh
index 00421453ba..bfeb2a6512 100755
--- a/t/t2020-checkout-detach.sh
+++ b/t/t2020-checkout-detach.sh
@@ -11,6 +11,14 @@ check_not_detached () {
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
@@ -19,6 +27,8 @@ reset () {
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
'
@@ -92,4 +102,28 @@ test_expect_success 'checkout --detach moves HEAD' '
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