summaryrefslogtreecommitdiff
path: root/t/t2019-checkout-ambiguous-ref.sh
diff options
context:
space:
mode:
authorLibravatar Jonathan Nieder <jrnieder@gmail.com>2011-05-02 23:02:15 -0500
committerLibravatar Jonathan Nieder <jrnieder@gmail.com>2011-05-02 23:02:15 -0500
commit59445b0b02c731872c8665ac7e9cf1226fa616e4 (patch)
tree93922cf13ed9c62859dac628fa7e376977a23d24 /t/t2019-checkout-ambiguous-ref.sh
parentRevert "t0081 (line-buffer): add buffering tests" (diff)
parentGit 1.7.5 (diff)
downloadtgif-59445b0b02c731872c8665ac7e9cf1226fa616e4.tar.xz
Merge commit 'v1.7.5' into svn-fe
* commit 'v1.7.5': (436 commits) Git 1.7.5 Git 1.7.5-rc3 Git 1.7.4.5 git-svn.txt: Document --mergeinfo Revert "run-command: prettify -D_FORTIFY_SOURCE workaround" ...
Diffstat (limited to 't/t2019-checkout-ambiguous-ref.sh')
-rwxr-xr-xt/t2019-checkout-ambiguous-ref.sh59
1 files changed, 59 insertions, 0 deletions
diff --git a/t/t2019-checkout-ambiguous-ref.sh b/t/t2019-checkout-ambiguous-ref.sh
new file mode 100755
index 0000000000..cc34e5535b
--- /dev/null
+++ b/t/t2019-checkout-ambiguous-ref.sh
@@ -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 C_LOCALE_OUTPUT '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,C_LOCALE_OUTPUT 'checkout reports switch to branch' '
+ grep "Switched to branch" stderr &&
+ ! grep "^HEAD is now at" stderr
+'
+
+test_done