chiark / gitweb /
stgit.el: Add "d" for a few diff commands, similar to git.el
[stgit] / t / t3100-reset.sh
1 #!/bin/sh
2
3 test_description='Simple test cases for "stg reset"'
4
5 . ./test-lib.sh
6
7 # Ignore our own output files.
8 cat > .git/info/exclude <<EOF
9 /expected.txt
10 EOF
11
12 test_expect_success 'Initialize StGit stack with three patches' '
13     stg init &&
14     echo 000 >> a &&
15     git add a &&
16     git commit -m a &&
17     echo 111 >> a &&
18     git commit -a -m p1 &&
19     echo 222 >> a &&
20     git commit -a -m p2 &&
21     echo 333 >> a &&
22     git commit -a -m p3 &&
23     stg uncommit -n 3 &&
24     stg pop
25 '
26
27 cat > expected.txt <<EOF
28 000
29 111
30 EOF
31 test_expect_success 'Pop one patch ...' '
32     stg pop &&
33     test "$(echo $(stg series --all))" = "> p1 - p2 - p3" &&
34     test_cmp expected.txt a
35 '
36
37 cat > expected.txt <<EOF
38 000
39 111
40 222
41 EOF
42 test_expect_success '... and undo it' '
43     stg reset master.stgit^~1 &&
44     test "$(echo $(stg series --all))" = "+ p1 > p2 - p3" &&
45     test_cmp expected.txt a
46 '
47
48 cat > expected.txt <<EOF
49 000
50 111
51 222
52 333
53 EOF
54 test_expect_success 'Push one patch ...' '
55     stg push &&
56     test "$(echo $(stg series --all))" = "+ p1 + p2 > p3" &&
57     test_cmp expected.txt a
58 '
59
60 cat > expected.txt <<EOF
61 000
62 111
63 222
64 EOF
65 test_expect_success '... and undo it' '
66     stg reset master.stgit^~1 &&
67     test "$(echo $(stg series --all))" = "+ p1 > p2 - p3" &&
68     test_cmp expected.txt a
69 '
70
71 test_expect_success 'Commit one patch ...' '
72     stg commit &&
73     test "$(echo $(stg series --all))" = "> p2 - p3"
74 '
75
76 test_expect_success '... and undo it' '
77     stg reset master.stgit^~1 &&
78     test "$(echo $(stg series --all))" = "+ p1 > p2 - p3"
79 '
80
81 test_expect_success 'Hide a patch ...' '
82     stg hide p3 &&
83     test "$(echo $(stg series --all))" = "+ p1 > p2 ! p3"
84 '
85
86 test_expect_success '... undo the hiding ...' '
87     stg reset master.stgit^~1 &&
88     test "$(echo $(stg series --all))" = "+ p1 > p2 - p3"
89 '
90
91 test_expect_success '... unhide the patch ...' '
92     stg hide p3 && stg unhide p3 &&
93     test "$(echo $(stg series --all))" = "+ p1 > p2 - p3"
94 '
95
96 test_expect_success '... and undo the unhiding' '
97     stg reset master.stgit^~1 &&
98     test "$(echo $(stg series --all))" = "+ p1 > p2 ! p3" &&
99     stg unhide p3
100 '
101
102 cat > expected.txt <<EOF
103 000
104 111
105 EOF
106 test_expect_success 'Delete two patches ...' '
107     stg delete p2 p3 &&
108     test "$(echo $(stg series --all))" = "> p1" &&
109     test_cmp expected.txt a
110 '
111
112 test_expect_success '... and undo one of the deletions ...' '
113     stg reset master.stgit^~1 p3 &&
114     test "$(echo $(stg series --all))" = "> p1 - p3" &&
115     test_cmp expected.txt a
116 '
117
118 test_expect_success '... then undo the first undo ...' '
119     stg reset master.stgit^~1 &&
120     test "$(echo $(stg series --all))" = "> p1" &&
121     test_cmp expected.txt a
122 '
123
124 cat > expected.txt <<EOF
125 000
126 111
127 222
128 EOF
129 test_expect_success '... and undo the other deletion' '
130     stg reset master.stgit^~3 p2 &&
131     stg push p2 &&
132     test "$(echo $(stg series --all))" = "+ p1 > p2" &&
133     test_cmp expected.txt a
134 '
135
136 cat > expected.txt <<EOF
137 000
138 111
139 222
140 ggg
141 EOF
142 test_expect_success 'Refresh a patch ...' '
143     echo ggg >> a &&
144     stg refresh &&
145     test "$(echo $(stg series --all))" = "+ p1 > p2" &&
146     test_cmp expected.txt a
147 '
148
149 cat > expected.txt <<EOF
150 000
151 111
152 222
153 EOF
154 test_expect_success '... and undo the refresh' '
155     stg reset master.stgit^~2 &&
156     test "$(echo $(stg series --all))" = "+ p1 > p2" &&
157     test_cmp expected.txt a
158 '
159
160 test_done