Junio C Hamano
14 years ago
2 changed files with 72 additions and 10 deletions
@ -0,0 +1,59 @@
@@ -0,0 +1,59 @@
|
||||
#!/bin/sh |
||||
|
||||
test_description='checkout handling of ambiguous (branch/tag) refs' |
||||
. ./test-lib.sh |
||||
|
||||
test_expect_success 'setup ambiguous refs' ' |
||||
test_commit branch file && |
||||
git branch ambiguity && |
||||
git branch vagueness && |
||||
test_commit tag file && |
||||
git tag ambiguity && |
||||
git tag vagueness HEAD:file && |
||||
test_commit other file |
||||
' |
||||
|
||||
test_expect_success 'checkout ambiguous ref succeeds' ' |
||||
git checkout ambiguity >stdout 2>stderr |
||||
' |
||||
|
||||
test_expect_success 'checkout produces ambiguity warning' ' |
||||
grep "warning.*ambiguous" stderr |
||||
' |
||||
|
||||
test_expect_success 'checkout chooses branch over tag' ' |
||||
echo refs/heads/ambiguity >expect && |
||||
git symbolic-ref HEAD >actual && |
||||
test_cmp expect actual && |
||||
echo branch >expect && |
||||
test_cmp expect file |
||||
' |
||||
|
||||
test_expect_success 'checkout reports switch to branch' ' |
||||
grep "Switched to branch" stderr && |
||||
! grep "^HEAD is now at" stderr |
||||
' |
||||
|
||||
test_expect_success 'checkout vague ref succeeds' ' |
||||
git checkout vagueness >stdout 2>stderr && |
||||
test_set_prereq VAGUENESS_SUCCESS |
||||
' |
||||
|
||||
test_expect_success VAGUENESS_SUCCESS 'checkout produces ambiguity warning' ' |
||||
grep "warning.*ambiguous" stderr |
||||
' |
||||
|
||||
test_expect_success VAGUENESS_SUCCESS 'checkout chooses branch over tag' ' |
||||
echo refs/heads/vagueness >expect && |
||||
git symbolic-ref HEAD >actual && |
||||
test_cmp expect actual && |
||||
echo branch >expect && |
||||
test_cmp expect file |
||||
' |
||||
|
||||
test_expect_success VAGUENESS_SUCCESS 'checkout reports switch to branch' ' |
||||
grep "Switched to branch" stderr && |
||||
! grep "^HEAD is now at" stderr |
||||
' |
||||
|
||||
test_done |
Loading…
Reference in new issue