]>
Commit | Line | Data |
---|---|---|
0cb6ad3c JH |
1 | #!/bin/sh |
2 | ||
3 | test_description='checkout handling of ambiguous (branch/tag) refs' | |
4 | . ./test-lib.sh | |
5 | ||
6 | test_expect_success 'setup ambiguous refs' ' | |
7 | test_commit branch file && | |
8 | git branch ambiguity && | |
9 | git branch vagueness && | |
10 | test_commit tag file && | |
11 | git tag ambiguity && | |
12 | git tag vagueness HEAD:file && | |
13 | test_commit other file | |
14 | ' | |
15 | ||
16 | test_expect_success 'checkout ambiguous ref succeeds' ' | |
17 | git checkout ambiguity >stdout 2>stderr | |
18 | ' | |
19 | ||
20 | test_expect_success 'checkout produces ambiguity warning' ' | |
21 | grep "warning.*ambiguous" stderr | |
22 | ' | |
23 | ||
24 | test_expect_success 'checkout chooses branch over tag' ' | |
25 | echo refs/heads/ambiguity >expect && | |
26 | git symbolic-ref HEAD >actual && | |
27 | test_cmp expect actual && | |
28 | echo branch >expect && | |
29 | test_cmp expect file | |
30 | ' | |
31 | ||
d3bd0425 JH |
32 | test_expect_success 'checkout reports switch to branch' ' |
33 | test_i18ngrep "Switched to branch" stderr && | |
34 | test_i18ngrep ! "^HEAD is now at" stderr | |
0cb6ad3c JH |
35 | ' |
36 | ||
37 | test_expect_success 'checkout vague ref succeeds' ' | |
38 | git checkout vagueness >stdout 2>stderr && | |
39 | test_set_prereq VAGUENESS_SUCCESS | |
40 | ' | |
41 | ||
42 | test_expect_success VAGUENESS_SUCCESS 'checkout produces ambiguity warning' ' | |
43 | grep "warning.*ambiguous" stderr | |
44 | ' | |
45 | ||
46 | test_expect_success VAGUENESS_SUCCESS 'checkout chooses branch over tag' ' | |
47 | echo refs/heads/vagueness >expect && | |
48 | git symbolic-ref HEAD >actual && | |
49 | test_cmp expect actual && | |
50 | echo branch >expect && | |
51 | test_cmp expect file | |
52 | ' | |
53 | ||
d3bd0425 JH |
54 | test_expect_success VAGUENESS_SUCCESS 'checkout reports switch to branch' ' |
55 | test_i18ngrep "Switched to branch" stderr && | |
56 | test_i18ngrep ! "^HEAD is now at" stderr | |
0cb6ad3c JH |
57 | ' |
58 | ||
59 | test_done |