debian/rules should be producing architecture independent packages
[stgit/dwhite.git] / t / t1300-uncommit.sh
blob43e0d04b4fa29724750cd911e18bba22b4ba158a
1 #!/bin/sh
3 # Copyright (c) 2006 Catalin Marinas
6 test_description='Test the uncommit command.
10 . ./test-lib.sh
12 test_expect_success \
13 'Initialize the StGIT repository' \
14 'stg init
17 test_expect_success \
18 'Create the first patch' \
20 stg new foo -m "Foo Patch" &&
21 echo foo > test &&
22 git add test &&
23 stg refresh
26 test_expect_success \
27 'Create the second patch' \
29 stg new bar -m "Bar Patch" &&
30 echo bar > test &&
31 git add test &&
32 stg refresh
35 test_expect_success \
36 'Commit the patches' \
38 stg commit --all
41 test_expect_success \
42 'Uncommit the patches using names' \
44 stg uncommit bar foo &&
45 [ "$(stg id foo)" = "$(stg id bar^)" ] &&
46 stg commit --all
49 test_expect_success \
50 'Uncommit the patches using prefix' \
52 stg uncommit --number=2 foobar &&
53 [ "$(stg id foobar1)" = "$(stg id foobar2^)" ] &&
54 stg commit --all
57 test_expect_success \
58 'Uncommit the patches using auto names' \
60 stg uncommit --number=2 &&
61 [ "$(stg id foo-patch)" = "$(stg id bar-patch^)" ] &&
62 stg commit --all
65 test_expect_success \
66 'Uncommit the patches one by one' \
68 stg uncommit &&
69 stg uncommit &&
70 [ "$(stg id foo-patch)" = "$(stg id bar-patch^)" ] &&
71 stg commit --all
74 test_expect_success \
75 'Uncommit the patches with --to' '
76 stg uncommit --to HEAD^ &&
77 [ "$(stg id foo-patch)" = "$(stg id bar-patch^)" ] &&
78 stg commit --all
81 test_expect_success 'Uncommit a commit with not precisely one parent' '
82 command_error stg uncommit -n 5 &&
83 [ "$(echo $(stg series))" = "" ]
86 # stg uncommit should work even when top != head, and should not touch
87 # the head.
88 test_expect_success 'Uncommit when top != head' '
89 stg new -m foo &&
90 git reset --hard HEAD^ &&
91 h=$(git rev-parse HEAD)
92 stg uncommit bar &&
93 test $(git rev-parse HEAD) = $h &&
94 test "$(echo $(stg series))" = "+ bar > foo"
97 test_done