Restore the original applied patches during 'commit'
[stgit] / t / t1303-commit.sh
1 #!/bin/sh
2 test_description='Test stg commit'
3 . ./test-lib.sh
4
5 test_expect_success 'Initialize the StGIT repository' '
6 stg init
7 '
8
9 test_expect_success 'Commit middle patch' '
10 stg new -m p1 &&
11 stg new -m p2 &&
12 stg new -m p3 &&
13 stg new -m p4 &&
14 stg pop &&
15 stg commit p2 &&
16 test "$(echo $(stg series))" = "+ p1 > p3 - p4"
17 '
18
19 test_expect_success 'Commit first patch' '
20 stg commit &&
21 test "$(echo $(stg series))" = "> p3 - p4"
22 '
23
24 test_expect_success 'Commit all patches' '
25 stg push &&
26 stg commit -a &&
27 test "$(echo $(stg series))" = ""
28 '
29
30 # stg commit with top != head should not succeed, since the committed
31 # patches are poptentially lost.
32 test_expect_success 'Commit when top != head (should fail)' '
33 stg new -m foo &&
34 git reset --hard HEAD^ &&
35 h=$(git rev-parse HEAD)
36 command_error stg commit &&
37 test $(git rev-parse HEAD) = $h &&
38 test "$(echo $(stg series))" = "> foo"
39 '
40
41 test_done