]> git.ipfire.org Git - thirdparty/git.git/blame - t/t2012-checkout-last.sh
checkout: implement "-" abbreviation, add docs and tests
[thirdparty/git.git] / t / t2012-checkout-last.sh
CommitLineData
696acf45
TR
1#!/bin/sh
2
3test_description='checkout can switch to last branch'
4
5. ./test-lib.sh
6
7test_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
17test_expect_success '"checkout -" does not work initially' '
18 test_must_fail git checkout -
19'
20
21test_expect_success 'first branch switch' '
22 git checkout other
23'
24
25test_expect_success '"checkout -" switches back' '
26 git checkout - &&
27 test "z$(git symbolic-ref HEAD)" = "zrefs/heads/master"
28'
29
30test_expect_success '"checkout -" switches forth' '
31 git checkout - &&
32 test "z$(git symbolic-ref HEAD)" = "zrefs/heads/other"
33'
34
35test_expect_success 'detach HEAD' '
36 git checkout $(git rev-parse HEAD)
37'
38
39test_expect_success '"checkout -" attaches again' '
40 git checkout - &&
41 test "z$(git symbolic-ref HEAD)" = "zrefs/heads/other"
42'
43
44test_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
50test_done