]> asedeno.scripts.mit.edu Git - git.git/blob - t/t2012-checkout-last.sh
checkout: implement "-" abbreviation, add docs and tests
[git.git] / t / t2012-checkout-last.sh
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