]>
Commit | Line | Data |
---|---|---|
696acf45 TR |
1 | #!/bin/sh |
2 | ||
3 | test_description='checkout can switch to last branch' | |
4 | ||
5 | . ./test-lib.sh | |
6 | ||
7 | test_expect_success 'setup' ' | |
8 | echo hello >world && | |
9 | git add world && | |
10 | git commit -m initial && | |
11 | git branch other && | |
12 | echo "hello again" >>world && | |
13 | git add world && | |
14 | git commit -m second | |
15 | ' | |
16 | ||
17 | test_expect_success '"checkout -" does not work initially' ' | |
18 | test_must_fail git checkout - | |
19 | ' | |
20 | ||
21 | test_expect_success 'first branch switch' ' | |
22 | git checkout other | |
23 | ' | |
24 | ||
25 | test_expect_success '"checkout -" switches back' ' | |
26 | git checkout - && | |
27 | test "z$(git symbolic-ref HEAD)" = "zrefs/heads/master" | |
28 | ' | |
29 | ||
30 | test_expect_success '"checkout -" switches forth' ' | |
31 | git checkout - && | |
32 | test "z$(git symbolic-ref HEAD)" = "zrefs/heads/other" | |
33 | ' | |
34 | ||
35 | test_expect_success 'detach HEAD' ' | |
36 | git checkout $(git rev-parse HEAD) | |
37 | ' | |
38 | ||
39 | test_expect_success '"checkout -" attaches again' ' | |
40 | git checkout - && | |
41 | test "z$(git symbolic-ref HEAD)" = "zrefs/heads/other" | |
42 | ' | |
43 | ||
44 | test_expect_success '"checkout -" detaches again' ' | |
45 | git checkout - && | |
46 | test "z$(git rev-parse HEAD)" = "z$(git rev-parse other)" && | |
47 | test_must_fail git symbolic-ref HEAD | |
48 | ' | |
49 | ||
50 | test_done |