summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2007-04-07 09:19:54 (GMT)
committerJunio C Hamano <junkio@cox.net>2007-04-07 09:19:54 (GMT)
commitb7108a16a6d6a9cc9542d53e8898c0b927bfd59b (patch)
treeca1602e62e4cdbd362eb347f87e2523a5b94347f /t
parentced38ea252cb8b0315f4d2a54648b11c6c090657 (diff)
parent3e0318a3613ae8e89dcb1fc39d909145e64287b9 (diff)
downloadgit-b7108a16a6d6a9cc9542d53e8898c0b927bfd59b.zip
git-b7108a16a6d6a9cc9542d53e8898c0b927bfd59b.tar.gz
git-b7108a16a6d6a9cc9542d53e8898c0b927bfd59b.tar.bz2
Merge branch 'jc/checkout' (early part)
* 'jc/checkout' (early part): checkout: allow detaching to HEAD even when switching to the tip of a branch
Diffstat (limited to 't')
-rwxr-xr-xt/t7201-co.sh63
1 files changed, 62 insertions, 1 deletions
diff --git a/t/t7201-co.sh b/t/t7201-co.sh
index 867bbd2..5fa6a45 100755
--- a/t/t7201-co.sh
+++ b/t/t7201-co.sh
@@ -3,7 +3,20 @@
# Copyright (c) 2006 Junio C Hamano
#
-test_description='git-checkout tests.'
+test_description='git-checkout tests.
+
+Creates master, forks renamer and side branches from it.
+Test switching across them.
+
+ ! [master] Initial A one, A two
+ * [renamer] Renamer R one->uno, M two
+ ! [side] Side M one, D two, A three
+ ---
+ + [side] Side M one, D two, A three
+ * [renamer] Renamer R one->uno, M two
+ +*+ [master] Initial A one, A two
+
+'
. ./test-lib.sh
@@ -129,4 +142,52 @@ test_expect_success 'checkout -m with merge conflict' '
! test -s current
'
+test_expect_success 'checkout to detach HEAD' '
+
+ git checkout -f renamer && git clean &&
+ git checkout renamer^ &&
+ H=$(git rev-parse --verify HEAD) &&
+ M=$(git show-ref -s --verify refs/heads/master) &&
+ test "z$H" = "z$M" &&
+ if git symbolic-ref HEAD >/dev/null 2>&1
+ then
+ echo "OOPS, HEAD is still symbolic???"
+ false
+ else
+ : happy
+ fi
+'
+
+test_expect_success 'checkout to detach HEAD with branchname^' '
+
+ git checkout -f master && git clean &&
+ git checkout renamer^ &&
+ H=$(git rev-parse --verify HEAD) &&
+ M=$(git show-ref -s --verify refs/heads/master) &&
+ test "z$H" = "z$M" &&
+ if git symbolic-ref HEAD >/dev/null 2>&1
+ then
+ echo "OOPS, HEAD is still symbolic???"
+ false
+ else
+ : happy
+ fi
+'
+
+test_expect_success 'checkout to detach HEAD with HEAD^0' '
+
+ git checkout -f master && git clean &&
+ git checkout HEAD^0 &&
+ H=$(git rev-parse --verify HEAD) &&
+ M=$(git show-ref -s --verify refs/heads/master) &&
+ test "z$H" = "z$M" &&
+ if git symbolic-ref HEAD >/dev/null 2>&1
+ then
+ echo "OOPS, HEAD is still symbolic???"
+ false
+ else
+ : happy
+ fi
+'
+
test_done