Blame


1 a129376b 2019-03-28 stsp #!/bin/sh
2 a129376b 2019-03-28 stsp #
3 a129376b 2019-03-28 stsp # Copyright (c) 2019 Stefan Sperling <stsp@openbsd.org>
4 a129376b 2019-03-28 stsp #
5 a129376b 2019-03-28 stsp # Permission to use, copy, modify, and distribute this software for any
6 a129376b 2019-03-28 stsp # purpose with or without fee is hereby granted, provided that the above
7 a129376b 2019-03-28 stsp # copyright notice and this permission notice appear in all copies.
8 a129376b 2019-03-28 stsp #
9 a129376b 2019-03-28 stsp # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 a129376b 2019-03-28 stsp # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 a129376b 2019-03-28 stsp # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 a129376b 2019-03-28 stsp # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 a129376b 2019-03-28 stsp # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 a129376b 2019-03-28 stsp # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 a129376b 2019-03-28 stsp # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 a129376b 2019-03-28 stsp
17 a129376b 2019-03-28 stsp . ./common.sh
18 a129376b 2019-03-28 stsp
19 a129376b 2019-03-28 stsp function test_revert_basic {
20 a129376b 2019-03-28 stsp local testroot=`test_init revert_basic`
21 a129376b 2019-03-28 stsp
22 a129376b 2019-03-28 stsp got checkout $testroot/repo $testroot/wt > /dev/null
23 a129376b 2019-03-28 stsp ret="$?"
24 a129376b 2019-03-28 stsp if [ "$ret" != "0" ]; then
25 a129376b 2019-03-28 stsp test_done "$testroot" "$ret"
26 a129376b 2019-03-28 stsp return 1
27 a129376b 2019-03-28 stsp fi
28 a129376b 2019-03-28 stsp
29 5e54fb30 2019-05-31 stsp echo "modified epsilon/zeta" > $testroot/wt/epsilon/zeta
30 a129376b 2019-03-28 stsp
31 5e54fb30 2019-05-31 stsp echo 'R epsilon/zeta' > $testroot/stdout.expected
32 a129376b 2019-03-28 stsp
33 5e54fb30 2019-05-31 stsp (cd $testroot/wt && got revert epsilon/zeta > $testroot/stdout)
34 a129376b 2019-03-28 stsp
35 8d301dd9 2019-05-14 stsp cmp -s $testroot/stdout.expected $testroot/stdout
36 a129376b 2019-03-28 stsp ret="$?"
37 a129376b 2019-03-28 stsp if [ "$ret" != "0" ]; then
38 a129376b 2019-03-28 stsp diff -u $testroot/stdout.expected $testroot/stdout
39 a129376b 2019-03-28 stsp test_done "$testroot" "$ret"
40 a129376b 2019-03-28 stsp return 1
41 a129376b 2019-03-28 stsp fi
42 a129376b 2019-03-28 stsp
43 5e54fb30 2019-05-31 stsp echo "zeta" > $testroot/content.expected
44 5e54fb30 2019-05-31 stsp cat $testroot/wt/epsilon/zeta > $testroot/content
45 a129376b 2019-03-28 stsp
46 8d301dd9 2019-05-14 stsp cmp -s $testroot/content.expected $testroot/content
47 a129376b 2019-03-28 stsp ret="$?"
48 a129376b 2019-03-28 stsp if [ "$ret" != "0" ]; then
49 a129376b 2019-03-28 stsp diff -u $testroot/content.expected $testroot/content
50 a129376b 2019-03-28 stsp fi
51 a129376b 2019-03-28 stsp test_done "$testroot" "$ret"
52 a129376b 2019-03-28 stsp
53 a129376b 2019-03-28 stsp }
54 a129376b 2019-03-28 stsp
55 a129376b 2019-03-28 stsp function test_revert_rm {
56 a129376b 2019-03-28 stsp local testroot=`test_init revert_rm`
57 a129376b 2019-03-28 stsp
58 a129376b 2019-03-28 stsp got checkout $testroot/repo $testroot/wt > /dev/null
59 a129376b 2019-03-28 stsp ret="$?"
60 a129376b 2019-03-28 stsp if [ "$ret" != "0" ]; then
61 a129376b 2019-03-28 stsp test_done "$testroot" "$ret"
62 a129376b 2019-03-28 stsp return 1
63 a129376b 2019-03-28 stsp fi
64 a129376b 2019-03-28 stsp
65 a129376b 2019-03-28 stsp (cd $testroot/wt && got rm beta >/dev/null)
66 a129376b 2019-03-28 stsp
67 a129376b 2019-03-28 stsp echo 'R beta' > $testroot/stdout.expected
68 a129376b 2019-03-28 stsp
69 a129376b 2019-03-28 stsp (cd $testroot/wt && got revert beta > $testroot/stdout)
70 a129376b 2019-03-28 stsp
71 8d301dd9 2019-05-14 stsp cmp -s $testroot/stdout.expected $testroot/stdout
72 a129376b 2019-03-28 stsp ret="$?"
73 a129376b 2019-03-28 stsp if [ "$ret" != "0" ]; then
74 a129376b 2019-03-28 stsp diff -u $testroot/stdout.expected $testroot/stdout
75 a129376b 2019-03-28 stsp test_done "$testroot" "$ret"
76 a129376b 2019-03-28 stsp return 1
77 a129376b 2019-03-28 stsp fi
78 a129376b 2019-03-28 stsp
79 a129376b 2019-03-28 stsp echo "beta" > $testroot/content.expected
80 a129376b 2019-03-28 stsp cat $testroot/wt/beta > $testroot/content
81 a129376b 2019-03-28 stsp
82 8d301dd9 2019-05-14 stsp cmp -s $testroot/content.expected $testroot/content
83 a129376b 2019-03-28 stsp ret="$?"
84 a129376b 2019-03-28 stsp if [ "$ret" != "0" ]; then
85 a129376b 2019-03-28 stsp diff -u $testroot/content.expected $testroot/content
86 a129376b 2019-03-28 stsp fi
87 a129376b 2019-03-28 stsp test_done "$testroot" "$ret"
88 a129376b 2019-03-28 stsp }
89 a129376b 2019-03-28 stsp
90 a129376b 2019-03-28 stsp function test_revert_add {
91 a129376b 2019-03-28 stsp local testroot=`test_init revert_add`
92 a129376b 2019-03-28 stsp
93 a129376b 2019-03-28 stsp got checkout $testroot/repo $testroot/wt > /dev/null
94 a129376b 2019-03-28 stsp ret="$?"
95 a129376b 2019-03-28 stsp if [ "$ret" != "0" ]; then
96 a129376b 2019-03-28 stsp test_done "$testroot" "$ret"
97 a129376b 2019-03-28 stsp return 1
98 a129376b 2019-03-28 stsp fi
99 a129376b 2019-03-28 stsp
100 a129376b 2019-03-28 stsp echo "new file" > $testroot/wt/new
101 a129376b 2019-03-28 stsp (cd $testroot/wt && got add new >/dev/null)
102 a129376b 2019-03-28 stsp
103 a129376b 2019-03-28 stsp echo 'R new' > $testroot/stdout.expected
104 a129376b 2019-03-28 stsp
105 a129376b 2019-03-28 stsp (cd $testroot/wt && got revert new > $testroot/stdout)
106 a129376b 2019-03-28 stsp
107 8d301dd9 2019-05-14 stsp cmp -s $testroot/stdout.expected $testroot/stdout
108 a129376b 2019-03-28 stsp ret="$?"
109 a129376b 2019-03-28 stsp if [ "$ret" != "0" ]; then
110 a129376b 2019-03-28 stsp diff -u $testroot/stdout.expected $testroot/stdout
111 a129376b 2019-03-28 stsp test_done "$testroot" "$ret"
112 a129376b 2019-03-28 stsp return 1
113 a129376b 2019-03-28 stsp fi
114 a129376b 2019-03-28 stsp
115 a129376b 2019-03-28 stsp echo "new file" > $testroot/content.expected
116 a129376b 2019-03-28 stsp cat $testroot/wt/new > $testroot/content
117 a129376b 2019-03-28 stsp
118 8d301dd9 2019-05-14 stsp cmp -s $testroot/content.expected $testroot/content
119 a129376b 2019-03-28 stsp ret="$?"
120 a129376b 2019-03-28 stsp if [ "$ret" != "0" ]; then
121 a129376b 2019-03-28 stsp diff -u $testroot/content.expected $testroot/content
122 a129376b 2019-03-28 stsp test_done "$testroot" "$ret"
123 a129376b 2019-03-28 stsp return 1
124 a129376b 2019-03-28 stsp fi
125 a129376b 2019-03-28 stsp
126 a129376b 2019-03-28 stsp echo '? new' > $testroot/stdout.expected
127 a129376b 2019-03-28 stsp
128 a129376b 2019-03-28 stsp (cd $testroot/wt && got status > $testroot/stdout)
129 a129376b 2019-03-28 stsp
130 8d301dd9 2019-05-14 stsp cmp -s $testroot/stdout.expected $testroot/stdout
131 a129376b 2019-03-28 stsp ret="$?"
132 a129376b 2019-03-28 stsp if [ "$ret" != "0" ]; then
133 a129376b 2019-03-28 stsp diff -u $testroot/stdout.expected $testroot/stdout
134 a129376b 2019-03-28 stsp fi
135 a129376b 2019-03-28 stsp test_done "$testroot" "$ret"
136 a129376b 2019-03-28 stsp }
137 a129376b 2019-03-28 stsp
138 e20a8b6f 2019-06-04 stsp function test_revert_multiple {
139 e20a8b6f 2019-06-04 stsp local testroot=`test_init revert_multiple`
140 e20a8b6f 2019-06-04 stsp
141 e20a8b6f 2019-06-04 stsp got checkout $testroot/repo $testroot/wt > /dev/null
142 e20a8b6f 2019-06-04 stsp ret="$?"
143 e20a8b6f 2019-06-04 stsp if [ "$ret" != "0" ]; then
144 e20a8b6f 2019-06-04 stsp test_done "$testroot" "$ret"
145 e20a8b6f 2019-06-04 stsp return 1
146 e20a8b6f 2019-06-04 stsp fi
147 e20a8b6f 2019-06-04 stsp
148 e20a8b6f 2019-06-04 stsp echo "modified alpha" > $testroot/wt/alpha
149 e20a8b6f 2019-06-04 stsp echo "modified epsilon/zeta" > $testroot/wt/epsilon/zeta
150 e20a8b6f 2019-06-04 stsp
151 e20a8b6f 2019-06-04 stsp echo 'R alpha' > $testroot/stdout.expected
152 e20a8b6f 2019-06-04 stsp echo 'R epsilon/zeta' >> $testroot/stdout.expected
153 e20a8b6f 2019-06-04 stsp
154 e20a8b6f 2019-06-04 stsp (cd $testroot/wt && got revert alpha epsilon/zeta > $testroot/stdout)
155 e20a8b6f 2019-06-04 stsp
156 e20a8b6f 2019-06-04 stsp cmp -s $testroot/stdout.expected $testroot/stdout
157 e20a8b6f 2019-06-04 stsp ret="$?"
158 e20a8b6f 2019-06-04 stsp if [ "$ret" != "0" ]; then
159 e20a8b6f 2019-06-04 stsp diff -u $testroot/stdout.expected $testroot/stdout
160 e20a8b6f 2019-06-04 stsp test_done "$testroot" "$ret"
161 e20a8b6f 2019-06-04 stsp return 1
162 e20a8b6f 2019-06-04 stsp fi
163 e20a8b6f 2019-06-04 stsp
164 e20a8b6f 2019-06-04 stsp echo "alpha" > $testroot/content.expected
165 e20a8b6f 2019-06-04 stsp cat $testroot/wt/alpha > $testroot/content
166 e20a8b6f 2019-06-04 stsp
167 e20a8b6f 2019-06-04 stsp cmp -s $testroot/content.expected $testroot/content
168 e20a8b6f 2019-06-04 stsp ret="$?"
169 e20a8b6f 2019-06-04 stsp if [ "$ret" != "0" ]; then
170 e20a8b6f 2019-06-04 stsp diff -u $testroot/content.expected $testroot/content
171 e20a8b6f 2019-06-04 stsp test_done "$testroot" "$ret"
172 e20a8b6f 2019-06-04 stsp return 1
173 e20a8b6f 2019-06-04 stsp fi
174 e20a8b6f 2019-06-04 stsp
175 e20a8b6f 2019-06-04 stsp echo "zeta" > $testroot/content.expected
176 e20a8b6f 2019-06-04 stsp cat $testroot/wt/epsilon/zeta > $testroot/content
177 e20a8b6f 2019-06-04 stsp
178 e20a8b6f 2019-06-04 stsp cmp -s $testroot/content.expected $testroot/content
179 e20a8b6f 2019-06-04 stsp ret="$?"
180 e20a8b6f 2019-06-04 stsp if [ "$ret" != "0" ]; then
181 e20a8b6f 2019-06-04 stsp diff -u $testroot/content.expected $testroot/content
182 e20a8b6f 2019-06-04 stsp fi
183 e20a8b6f 2019-06-04 stsp test_done "$testroot" "$ret"
184 e20a8b6f 2019-06-04 stsp }
185 e20a8b6f 2019-06-04 stsp
186 a9fa2909 2019-07-27 stsp function test_revert_file_in_new_subdir {
187 a9fa2909 2019-07-27 stsp local testroot=`test_init revert_file_in_new_subdir`
188 a9fa2909 2019-07-27 stsp
189 a9fa2909 2019-07-27 stsp got checkout $testroot/repo $testroot/wt > /dev/null
190 a9fa2909 2019-07-27 stsp ret="$?"
191 a9fa2909 2019-07-27 stsp if [ "$ret" != "0" ]; then
192 a9fa2909 2019-07-27 stsp test_done "$testroot" "$ret"
193 a9fa2909 2019-07-27 stsp return 1
194 a9fa2909 2019-07-27 stsp fi
195 a9fa2909 2019-07-27 stsp
196 a9fa2909 2019-07-27 stsp
197 a9fa2909 2019-07-27 stsp mkdir -p $testroot/wt/newdir
198 a9fa2909 2019-07-27 stsp echo new > $testroot/wt/newdir/new
199 a9fa2909 2019-07-27 stsp (cd $testroot/wt && got add newdir/new > /dev/null)
200 a9fa2909 2019-07-27 stsp
201 a9fa2909 2019-07-27 stsp (cd $testroot/wt && got revert newdir/new > $testroot/stdout)
202 a9fa2909 2019-07-27 stsp
203 a9fa2909 2019-07-27 stsp echo "R newdir/new" > $testroot/stdout.expected
204 a9fa2909 2019-07-27 stsp cmp -s $testroot/stdout.expected $testroot/stdout
205 a9fa2909 2019-07-27 stsp ret="$?"
206 a9fa2909 2019-07-27 stsp if [ "$ret" != "0" ]; then
207 a9fa2909 2019-07-27 stsp diff -u $testroot/stdout.expected $testroot/stdout
208 a9fa2909 2019-07-27 stsp test_done "$testroot" "$ret"
209 a9fa2909 2019-07-27 stsp return 1
210 a9fa2909 2019-07-27 stsp fi
211 a9fa2909 2019-07-27 stsp
212 a9fa2909 2019-07-27 stsp (cd $testroot/wt && got status > $testroot/stdout)
213 a9fa2909 2019-07-27 stsp
214 a9fa2909 2019-07-27 stsp echo "? newdir/new" > $testroot/stdout.expected
215 a9fa2909 2019-07-27 stsp cmp -s $testroot/stdout.expected $testroot/stdout
216 a9fa2909 2019-07-27 stsp ret="$?"
217 a9fa2909 2019-07-27 stsp if [ "$ret" != "0" ]; then
218 a9fa2909 2019-07-27 stsp diff -u $testroot/stdout.expected $testroot/stdout
219 a9fa2909 2019-07-27 stsp fi
220 a9fa2909 2019-07-27 stsp test_done "$testroot" "$ret"
221 a9fa2909 2019-07-27 stsp
222 a9fa2909 2019-07-27 stsp }
223 a9fa2909 2019-07-27 stsp
224 1f1abb7e 2019-08-08 stsp function test_revert_no_arguments {
225 1f1abb7e 2019-08-08 stsp local testroot=`test_init revert_no_arguments`
226 1f1abb7e 2019-08-08 stsp
227 1f1abb7e 2019-08-08 stsp got checkout $testroot/repo $testroot/wt > /dev/null
228 1f1abb7e 2019-08-08 stsp ret="$?"
229 1f1abb7e 2019-08-08 stsp if [ "$ret" != "0" ]; then
230 1f1abb7e 2019-08-08 stsp test_done "$testroot" "$ret"
231 1f1abb7e 2019-08-08 stsp return 1
232 1f1abb7e 2019-08-08 stsp fi
233 1f1abb7e 2019-08-08 stsp
234 1f1abb7e 2019-08-08 stsp echo "modified epsilon/zeta" > $testroot/wt/epsilon/zeta
235 1f1abb7e 2019-08-08 stsp
236 1f1abb7e 2019-08-08 stsp (cd $testroot/wt && got revert > $testroot/stdout 2> $testroot/stderr)
237 1f1abb7e 2019-08-08 stsp ret="$?"
238 1f1abb7e 2019-08-08 stsp if [ "$ret" == "0" ]; then
239 1f1abb7e 2019-08-08 stsp echo "revert command succeeded unexpectedly" >&2
240 1f1abb7e 2019-08-08 stsp test_done "$testroot" "1"
241 1f1abb7e 2019-08-08 stsp return 1
242 1f1abb7e 2019-08-08 stsp fi
243 1f1abb7e 2019-08-08 stsp
244 1f1abb7e 2019-08-08 stsp echo -n > $testroot/stdout.expected
245 1f1abb7e 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
246 1f1abb7e 2019-08-08 stsp ret="$?"
247 1f1abb7e 2019-08-08 stsp if [ "$ret" != "0" ]; then
248 1f1abb7e 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
249 1f1abb7e 2019-08-08 stsp test_done "$testroot" "$ret"
250 1f1abb7e 2019-08-08 stsp return 1
251 1f1abb7e 2019-08-08 stsp fi
252 1f1abb7e 2019-08-08 stsp
253 33aa809d 2019-08-08 stsp echo "usage: got revert [-p] [-F response-script] [-R] path ..." \
254 33aa809d 2019-08-08 stsp > $testroot/stderr.expected
255 0f6d7415 2019-08-08 stsp cmp -s $testroot/stderr.expected $testroot/stderr
256 0f6d7415 2019-08-08 stsp ret="$?"
257 0f6d7415 2019-08-08 stsp if [ "$ret" != "0" ]; then
258 0f6d7415 2019-08-08 stsp diff -u $testroot/stderr.expected $testroot/stderr
259 0f6d7415 2019-08-08 stsp fi
260 0f6d7415 2019-08-08 stsp test_done "$testroot" "$ret"
261 0f6d7415 2019-08-08 stsp }
262 0f6d7415 2019-08-08 stsp
263 0f6d7415 2019-08-08 stsp function test_revert_directory {
264 0f6d7415 2019-08-08 stsp local testroot=`test_init revert_directory`
265 0f6d7415 2019-08-08 stsp
266 0f6d7415 2019-08-08 stsp got checkout $testroot/repo $testroot/wt > /dev/null
267 0f6d7415 2019-08-08 stsp ret="$?"
268 0f6d7415 2019-08-08 stsp if [ "$ret" != "0" ]; then
269 0f6d7415 2019-08-08 stsp test_done "$testroot" "$ret"
270 0f6d7415 2019-08-08 stsp return 1
271 0f6d7415 2019-08-08 stsp fi
272 0f6d7415 2019-08-08 stsp
273 0f6d7415 2019-08-08 stsp echo "modified epsilon/zeta" > $testroot/wt/epsilon/zeta
274 0f6d7415 2019-08-08 stsp
275 0f6d7415 2019-08-08 stsp (cd $testroot/wt && got revert . > $testroot/stdout 2> $testroot/stderr)
276 0f6d7415 2019-08-08 stsp ret="$?"
277 0f6d7415 2019-08-08 stsp if [ "$ret" == "0" ]; then
278 0f6d7415 2019-08-08 stsp echo "got revert command succeeded unexpectedly" >&2
279 0f6d7415 2019-08-08 stsp test_done "$testroot" "1"
280 0f6d7415 2019-08-08 stsp return 1
281 0f6d7415 2019-08-08 stsp fi
282 0f6d7415 2019-08-08 stsp echo "got: reverting directories requires -R option" \
283 0f6d7415 2019-08-08 stsp > $testroot/stderr.expected
284 1f1abb7e 2019-08-08 stsp cmp -s $testroot/stderr.expected $testroot/stderr
285 1f1abb7e 2019-08-08 stsp ret="$?"
286 1f1abb7e 2019-08-08 stsp if [ "$ret" != "0" ]; then
287 1f1abb7e 2019-08-08 stsp diff -u $testroot/stderr.expected $testroot/stderr
288 0f6d7415 2019-08-08 stsp test_done "$testroot" "$ret"
289 0f6d7415 2019-08-08 stsp return 1
290 1f1abb7e 2019-08-08 stsp fi
291 0f6d7415 2019-08-08 stsp
292 0f6d7415 2019-08-08 stsp echo -n > $testroot/stdout.expected
293 0f6d7415 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
294 0f6d7415 2019-08-08 stsp ret="$?"
295 0f6d7415 2019-08-08 stsp if [ "$ret" != "0" ]; then
296 0f6d7415 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
297 0f6d7415 2019-08-08 stsp test_done "$testroot" "$ret"
298 0f6d7415 2019-08-08 stsp return 1
299 0f6d7415 2019-08-08 stsp fi
300 0f6d7415 2019-08-08 stsp
301 0f6d7415 2019-08-08 stsp (cd $testroot/wt && got revert -R . > $testroot/stdout)
302 0f6d7415 2019-08-08 stsp
303 0f6d7415 2019-08-08 stsp echo 'R epsilon/zeta' > $testroot/stdout.expected
304 0f6d7415 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
305 0f6d7415 2019-08-08 stsp ret="$?"
306 0f6d7415 2019-08-08 stsp if [ "$ret" != "0" ]; then
307 0f6d7415 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
308 0f6d7415 2019-08-08 stsp test_done "$testroot" "$ret"
309 0f6d7415 2019-08-08 stsp return 1
310 0f6d7415 2019-08-08 stsp fi
311 0f6d7415 2019-08-08 stsp
312 0f6d7415 2019-08-08 stsp echo "zeta" > $testroot/content.expected
313 0f6d7415 2019-08-08 stsp cat $testroot/wt/epsilon/zeta > $testroot/content
314 0f6d7415 2019-08-08 stsp
315 0f6d7415 2019-08-08 stsp cmp -s $testroot/content.expected $testroot/content
316 0f6d7415 2019-08-08 stsp ret="$?"
317 0f6d7415 2019-08-08 stsp if [ "$ret" != "0" ]; then
318 0f6d7415 2019-08-08 stsp diff -u $testroot/content.expected $testroot/content
319 33aa809d 2019-08-08 stsp fi
320 33aa809d 2019-08-08 stsp test_done "$testroot" "$ret"
321 3d69ad8d 2019-08-17 semarie }
322 3d69ad8d 2019-08-17 semarie
323 3d69ad8d 2019-08-17 semarie function test_revert_directory_unknown {
324 3d69ad8d 2019-08-17 semarie local testroot=`test_init revert_directory_unknown`
325 3d69ad8d 2019-08-17 semarie
326 3d69ad8d 2019-08-17 semarie got checkout $testroot/repo $testroot/wt > /dev/null
327 3d69ad8d 2019-08-17 semarie ret="$?"
328 3d69ad8d 2019-08-17 semarie if [ "$ret" != "0" ]; then
329 3d69ad8d 2019-08-17 semarie test_done "$testroot" "$ret"
330 3d69ad8d 2019-08-17 semarie return 1
331 3d69ad8d 2019-08-17 semarie fi
332 3d69ad8d 2019-08-17 semarie
333 3d69ad8d 2019-08-17 semarie echo "modified alpha" > $testroot/wt/alpha
334 3d69ad8d 2019-08-17 semarie echo "new untracked file" > $testroot/wt/epsilon/new_file
335 6a5eff7c 2019-11-23 stsp echo "modified epsilon/zeta" > $testroot/wt/epsilon/zeta
336 3d69ad8d 2019-08-17 semarie
337 3d69ad8d 2019-08-17 semarie (cd $testroot/wt && got revert -R . > $testroot/stdout)
338 3d69ad8d 2019-08-17 semarie
339 3d69ad8d 2019-08-17 semarie echo 'R alpha' > $testroot/stdout.expected
340 3d69ad8d 2019-08-17 semarie echo 'R epsilon/zeta' >> $testroot/stdout.expected
341 3d69ad8d 2019-08-17 semarie cmp -s $testroot/stdout.expected $testroot/stdout
342 3d69ad8d 2019-08-17 semarie ret="$?"
343 3d69ad8d 2019-08-17 semarie if [ "$ret" != "0" ]; then
344 3d69ad8d 2019-08-17 semarie diff -u $testroot/stdout.expected $testroot/stdout
345 3d69ad8d 2019-08-17 semarie test_done "$testroot" "$ret"
346 3d69ad8d 2019-08-17 semarie return 1
347 3d69ad8d 2019-08-17 semarie fi
348 3d69ad8d 2019-08-17 semarie
349 3d69ad8d 2019-08-17 semarie echo "new untracked file" > $testroot/content.expected
350 3d69ad8d 2019-08-17 semarie cat $testroot/wt/epsilon/new_file > $testroot/content
351 3d69ad8d 2019-08-17 semarie
352 3d69ad8d 2019-08-17 semarie cmp -s $testroot/content.expected $testroot/content
353 3d69ad8d 2019-08-17 semarie ret="$?"
354 3d69ad8d 2019-08-17 semarie if [ "$ret" != "0" ]; then
355 3d69ad8d 2019-08-17 semarie diff -u $testroot/content.expected $testroot/content
356 3d69ad8d 2019-08-17 semarie test_done "$testroot" "$ret"
357 3d69ad8d 2019-08-17 semarie return 1
358 3d69ad8d 2019-08-17 semarie fi
359 6a5eff7c 2019-11-23 stsp
360 3d69ad8d 2019-08-17 semarie echo "zeta" > $testroot/content.expected
361 3d69ad8d 2019-08-17 semarie cat $testroot/wt/epsilon/zeta > $testroot/content
362 33aa809d 2019-08-08 stsp
363 3d69ad8d 2019-08-17 semarie cmp -s $testroot/content.expected $testroot/content
364 3d69ad8d 2019-08-17 semarie ret="$?"
365 3d69ad8d 2019-08-17 semarie if [ "$ret" != "0" ]; then
366 3d69ad8d 2019-08-17 semarie diff -u $testroot/content.expected $testroot/content
367 3d69ad8d 2019-08-17 semarie fi
368 3d69ad8d 2019-08-17 semarie
369 3d69ad8d 2019-08-17 semarie test_done "$testroot" "$ret"
370 33aa809d 2019-08-08 stsp }
371 33aa809d 2019-08-08 stsp
372 33aa809d 2019-08-08 stsp function test_revert_patch {
373 33aa809d 2019-08-08 stsp local testroot=`test_init revert_patch`
374 33aa809d 2019-08-08 stsp
375 33aa809d 2019-08-08 stsp jot 16 > $testroot/repo/numbers
376 33aa809d 2019-08-08 stsp (cd $testroot/repo && git add numbers)
377 33aa809d 2019-08-08 stsp git_commit $testroot/repo -m "added numbers file"
378 33aa809d 2019-08-08 stsp local commit_id=`git_show_head $testroot/repo`
379 33aa809d 2019-08-08 stsp
380 33aa809d 2019-08-08 stsp got checkout $testroot/repo $testroot/wt > /dev/null
381 33aa809d 2019-08-08 stsp ret="$?"
382 33aa809d 2019-08-08 stsp if [ "$ret" != "0" ]; then
383 33aa809d 2019-08-08 stsp test_done "$testroot" "$ret"
384 33aa809d 2019-08-08 stsp return 1
385 33aa809d 2019-08-08 stsp fi
386 33aa809d 2019-08-08 stsp
387 33aa809d 2019-08-08 stsp sed -i -e 's/^2$/a/' $testroot/wt/numbers
388 33aa809d 2019-08-08 stsp sed -i -e 's/^7$/b/' $testroot/wt/numbers
389 33aa809d 2019-08-08 stsp sed -i -e 's/^16$/c/' $testroot/wt/numbers
390 33aa809d 2019-08-08 stsp
391 33aa809d 2019-08-08 stsp (cd $testroot/wt && got diff > $testroot/numbers.diff)
392 33aa809d 2019-08-08 stsp
393 33aa809d 2019-08-08 stsp # don't revert any hunks
394 33aa809d 2019-08-08 stsp printf "n\nn\nn\n" > $testroot/patchscript
395 33aa809d 2019-08-08 stsp (cd $testroot/wt && got revert -F $testroot/patchscript -p \
396 33aa809d 2019-08-08 stsp numbers > $testroot/stdout)
397 33aa809d 2019-08-08 stsp ret="$?"
398 33aa809d 2019-08-08 stsp if [ "$ret" != "0" ]; then
399 33aa809d 2019-08-08 stsp echo "got revert command failed unexpectedly" >&2
400 33aa809d 2019-08-08 stsp test_done "$testroot" "1"
401 33aa809d 2019-08-08 stsp return 1
402 33aa809d 2019-08-08 stsp fi
403 33aa809d 2019-08-08 stsp cat > $testroot/stdout.expected <<EOF
404 33aa809d 2019-08-08 stsp -----------------------------------------------
405 33aa809d 2019-08-08 stsp @@ -1,5 +1,5 @@
406 33aa809d 2019-08-08 stsp 1
407 33aa809d 2019-08-08 stsp -2
408 33aa809d 2019-08-08 stsp +a
409 33aa809d 2019-08-08 stsp 3
410 33aa809d 2019-08-08 stsp 4
411 33aa809d 2019-08-08 stsp 5
412 33aa809d 2019-08-08 stsp -----------------------------------------------
413 33aa809d 2019-08-08 stsp M numbers (change 1 of 3)
414 33aa809d 2019-08-08 stsp revert this change? [y/n/q] n
415 33aa809d 2019-08-08 stsp -----------------------------------------------
416 33aa809d 2019-08-08 stsp @@ -4,7 +4,7 @@
417 33aa809d 2019-08-08 stsp 4
418 33aa809d 2019-08-08 stsp 5
419 33aa809d 2019-08-08 stsp 6
420 33aa809d 2019-08-08 stsp -7
421 33aa809d 2019-08-08 stsp +b
422 33aa809d 2019-08-08 stsp 8
423 33aa809d 2019-08-08 stsp 9
424 33aa809d 2019-08-08 stsp 10
425 33aa809d 2019-08-08 stsp -----------------------------------------------
426 33aa809d 2019-08-08 stsp M numbers (change 2 of 3)
427 33aa809d 2019-08-08 stsp revert this change? [y/n/q] n
428 33aa809d 2019-08-08 stsp -----------------------------------------------
429 33aa809d 2019-08-08 stsp @@ -13,4 +13,4 @@
430 33aa809d 2019-08-08 stsp 13
431 33aa809d 2019-08-08 stsp 14
432 33aa809d 2019-08-08 stsp 15
433 33aa809d 2019-08-08 stsp -16
434 33aa809d 2019-08-08 stsp +c
435 33aa809d 2019-08-08 stsp -----------------------------------------------
436 33aa809d 2019-08-08 stsp M numbers (change 3 of 3)
437 33aa809d 2019-08-08 stsp revert this change? [y/n/q] n
438 33aa809d 2019-08-08 stsp EOF
439 33aa809d 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
440 33aa809d 2019-08-08 stsp ret="$?"
441 33aa809d 2019-08-08 stsp if [ "$ret" != "0" ]; then
442 33aa809d 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
443 33aa809d 2019-08-08 stsp test_done "$testroot" "$ret"
444 33aa809d 2019-08-08 stsp return 1
445 33aa809d 2019-08-08 stsp fi
446 33aa809d 2019-08-08 stsp
447 33aa809d 2019-08-08 stsp (cd $testroot/wt && got status > $testroot/stdout)
448 33aa809d 2019-08-08 stsp echo "M numbers" > $testroot/stdout.expected
449 33aa809d 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
450 33aa809d 2019-08-08 stsp ret="$?"
451 33aa809d 2019-08-08 stsp if [ "$ret" != "0" ]; then
452 33aa809d 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
453 33aa809d 2019-08-08 stsp test_done "$testroot" "$ret"
454 33aa809d 2019-08-08 stsp return 1
455 33aa809d 2019-08-08 stsp fi
456 33aa809d 2019-08-08 stsp
457 33aa809d 2019-08-08 stsp (cd $testroot/wt && got diff > $testroot/stdout)
458 33aa809d 2019-08-08 stsp cmp -s $testroot/numbers.diff $testroot/stdout
459 33aa809d 2019-08-08 stsp ret="$?"
460 33aa809d 2019-08-08 stsp if [ "$ret" != "0" ]; then
461 33aa809d 2019-08-08 stsp diff -u $testroot/numbers.diff $testroot/stdout
462 33aa809d 2019-08-08 stsp test_done "$testroot" "$ret"
463 33aa809d 2019-08-08 stsp return 1
464 33aa809d 2019-08-08 stsp fi
465 33aa809d 2019-08-08 stsp
466 ce2b05c7 2019-08-10 stsp # revert first hunk
467 ce2b05c7 2019-08-10 stsp printf "y\nn\nn\n" > $testroot/patchscript
468 ce2b05c7 2019-08-10 stsp (cd $testroot/wt && got revert -F $testroot/patchscript -p \
469 ce2b05c7 2019-08-10 stsp numbers > $testroot/stdout)
470 ce2b05c7 2019-08-10 stsp ret="$?"
471 ce2b05c7 2019-08-10 stsp if [ "$ret" != "0" ]; then
472 ce2b05c7 2019-08-10 stsp echo "got revert command failed unexpectedly" >&2
473 ce2b05c7 2019-08-10 stsp test_done "$testroot" "1"
474 ce2b05c7 2019-08-10 stsp return 1
475 ce2b05c7 2019-08-10 stsp fi
476 ce2b05c7 2019-08-10 stsp cat > $testroot/stdout.expected <<EOF
477 ce2b05c7 2019-08-10 stsp -----------------------------------------------
478 ce2b05c7 2019-08-10 stsp @@ -1,5 +1,5 @@
479 ce2b05c7 2019-08-10 stsp 1
480 ce2b05c7 2019-08-10 stsp -2
481 ce2b05c7 2019-08-10 stsp +a
482 ce2b05c7 2019-08-10 stsp 3
483 ce2b05c7 2019-08-10 stsp 4
484 ce2b05c7 2019-08-10 stsp 5
485 ce2b05c7 2019-08-10 stsp -----------------------------------------------
486 ce2b05c7 2019-08-10 stsp M numbers (change 1 of 3)
487 ce2b05c7 2019-08-10 stsp revert this change? [y/n/q] y
488 ce2b05c7 2019-08-10 stsp -----------------------------------------------
489 ce2b05c7 2019-08-10 stsp @@ -4,7 +4,7 @@
490 ce2b05c7 2019-08-10 stsp 4
491 ce2b05c7 2019-08-10 stsp 5
492 ce2b05c7 2019-08-10 stsp 6
493 ce2b05c7 2019-08-10 stsp -7
494 ce2b05c7 2019-08-10 stsp +b
495 ce2b05c7 2019-08-10 stsp 8
496 ce2b05c7 2019-08-10 stsp 9
497 ce2b05c7 2019-08-10 stsp 10
498 ce2b05c7 2019-08-10 stsp -----------------------------------------------
499 ce2b05c7 2019-08-10 stsp M numbers (change 2 of 3)
500 ce2b05c7 2019-08-10 stsp revert this change? [y/n/q] n
501 ce2b05c7 2019-08-10 stsp -----------------------------------------------
502 ce2b05c7 2019-08-10 stsp @@ -13,4 +13,4 @@
503 ce2b05c7 2019-08-10 stsp 13
504 ce2b05c7 2019-08-10 stsp 14
505 ce2b05c7 2019-08-10 stsp 15
506 ce2b05c7 2019-08-10 stsp -16
507 ce2b05c7 2019-08-10 stsp +c
508 ce2b05c7 2019-08-10 stsp -----------------------------------------------
509 ce2b05c7 2019-08-10 stsp M numbers (change 3 of 3)
510 ce2b05c7 2019-08-10 stsp revert this change? [y/n/q] n
511 ce2b05c7 2019-08-10 stsp EOF
512 ce2b05c7 2019-08-10 stsp cmp -s $testroot/stdout.expected $testroot/stdout
513 ce2b05c7 2019-08-10 stsp ret="$?"
514 ce2b05c7 2019-08-10 stsp if [ "$ret" != "0" ]; then
515 ce2b05c7 2019-08-10 stsp diff -u $testroot/stdout.expected $testroot/stdout
516 ce2b05c7 2019-08-10 stsp test_done "$testroot" "$ret"
517 ce2b05c7 2019-08-10 stsp return 1
518 ce2b05c7 2019-08-10 stsp fi
519 ce2b05c7 2019-08-10 stsp
520 ce2b05c7 2019-08-10 stsp (cd $testroot/wt && got status > $testroot/stdout)
521 ce2b05c7 2019-08-10 stsp echo "M numbers" > $testroot/stdout.expected
522 ce2b05c7 2019-08-10 stsp cmp -s $testroot/stdout.expected $testroot/stdout
523 ce2b05c7 2019-08-10 stsp ret="$?"
524 ce2b05c7 2019-08-10 stsp if [ "$ret" != "0" ]; then
525 ce2b05c7 2019-08-10 stsp diff -u $testroot/stdout.expected $testroot/stdout
526 ce2b05c7 2019-08-10 stsp test_done "$testroot" "$ret"
527 ce2b05c7 2019-08-10 stsp return 1
528 ce2b05c7 2019-08-10 stsp fi
529 ce2b05c7 2019-08-10 stsp
530 ce2b05c7 2019-08-10 stsp echo "diff $commit_id $testroot/wt" > $testroot/stdout.expected
531 ce2b05c7 2019-08-10 stsp echo -n 'blob - ' >> $testroot/stdout.expected
532 ce2b05c7 2019-08-10 stsp got tree -r $testroot/repo -i -c $commit_id \
533 ce2b05c7 2019-08-10 stsp | grep 'numbers$' | cut -d' ' -f 1 \
534 ce2b05c7 2019-08-10 stsp >> $testroot/stdout.expected
535 ce2b05c7 2019-08-10 stsp echo 'file + numbers' >> $testroot/stdout.expected
536 ce2b05c7 2019-08-10 stsp cat >> $testroot/stdout.expected <<EOF
537 ce2b05c7 2019-08-10 stsp --- numbers
538 ce2b05c7 2019-08-10 stsp +++ numbers
539 ce2b05c7 2019-08-10 stsp @@ -4,7 +4,7 @@
540 ce2b05c7 2019-08-10 stsp 4
541 ce2b05c7 2019-08-10 stsp 5
542 ce2b05c7 2019-08-10 stsp 6
543 ce2b05c7 2019-08-10 stsp -7
544 ce2b05c7 2019-08-10 stsp +b
545 ce2b05c7 2019-08-10 stsp 8
546 ce2b05c7 2019-08-10 stsp 9
547 ce2b05c7 2019-08-10 stsp 10
548 ce2b05c7 2019-08-10 stsp @@ -13,4 +13,4 @@
549 ce2b05c7 2019-08-10 stsp 13
550 ce2b05c7 2019-08-10 stsp 14
551 ce2b05c7 2019-08-10 stsp 15
552 ce2b05c7 2019-08-10 stsp -16
553 ce2b05c7 2019-08-10 stsp +c
554 ce2b05c7 2019-08-10 stsp EOF
555 ce2b05c7 2019-08-10 stsp (cd $testroot/wt && got diff > $testroot/stdout)
556 ce2b05c7 2019-08-10 stsp cmp -s $testroot/stdout.expected $testroot/stdout
557 ce2b05c7 2019-08-10 stsp ret="$?"
558 ce2b05c7 2019-08-10 stsp if [ "$ret" != "0" ]; then
559 ce2b05c7 2019-08-10 stsp diff -u $testroot/stdout.expected $testroot/stdout
560 ce2b05c7 2019-08-10 stsp test_done "$testroot" "$ret"
561 ce2b05c7 2019-08-10 stsp return 1
562 ce2b05c7 2019-08-10 stsp fi
563 ce2b05c7 2019-08-10 stsp
564 ce2b05c7 2019-08-10 stsp # put first hunk back
565 ce2b05c7 2019-08-10 stsp sed -i -e 's/^2$/a/' $testroot/wt/numbers
566 ce2b05c7 2019-08-10 stsp
567 33aa809d 2019-08-08 stsp # revert middle hunk
568 33aa809d 2019-08-08 stsp printf "n\ny\nn\n" > $testroot/patchscript
569 33aa809d 2019-08-08 stsp (cd $testroot/wt && got revert -F $testroot/patchscript -p \
570 33aa809d 2019-08-08 stsp numbers > $testroot/stdout)
571 33aa809d 2019-08-08 stsp
572 33aa809d 2019-08-08 stsp cat > $testroot/stdout.expected <<EOF
573 33aa809d 2019-08-08 stsp -----------------------------------------------
574 33aa809d 2019-08-08 stsp @@ -1,5 +1,5 @@
575 33aa809d 2019-08-08 stsp 1
576 33aa809d 2019-08-08 stsp -2
577 33aa809d 2019-08-08 stsp +a
578 33aa809d 2019-08-08 stsp 3
579 33aa809d 2019-08-08 stsp 4
580 33aa809d 2019-08-08 stsp 5
581 33aa809d 2019-08-08 stsp -----------------------------------------------
582 33aa809d 2019-08-08 stsp M numbers (change 1 of 3)
583 33aa809d 2019-08-08 stsp revert this change? [y/n/q] n
584 33aa809d 2019-08-08 stsp -----------------------------------------------
585 33aa809d 2019-08-08 stsp @@ -4,7 +4,7 @@
586 33aa809d 2019-08-08 stsp 4
587 33aa809d 2019-08-08 stsp 5
588 33aa809d 2019-08-08 stsp 6
589 33aa809d 2019-08-08 stsp -7
590 33aa809d 2019-08-08 stsp +b
591 33aa809d 2019-08-08 stsp 8
592 33aa809d 2019-08-08 stsp 9
593 33aa809d 2019-08-08 stsp 10
594 33aa809d 2019-08-08 stsp -----------------------------------------------
595 33aa809d 2019-08-08 stsp M numbers (change 2 of 3)
596 33aa809d 2019-08-08 stsp revert this change? [y/n/q] y
597 33aa809d 2019-08-08 stsp -----------------------------------------------
598 33aa809d 2019-08-08 stsp @@ -13,4 +13,4 @@
599 33aa809d 2019-08-08 stsp 13
600 33aa809d 2019-08-08 stsp 14
601 33aa809d 2019-08-08 stsp 15
602 33aa809d 2019-08-08 stsp -16
603 33aa809d 2019-08-08 stsp +c
604 33aa809d 2019-08-08 stsp -----------------------------------------------
605 33aa809d 2019-08-08 stsp M numbers (change 3 of 3)
606 33aa809d 2019-08-08 stsp revert this change? [y/n/q] n
607 33aa809d 2019-08-08 stsp EOF
608 33aa809d 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
609 33aa809d 2019-08-08 stsp ret="$?"
610 33aa809d 2019-08-08 stsp if [ "$ret" != "0" ]; then
611 33aa809d 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
612 33aa809d 2019-08-08 stsp test_done "$testroot" "$ret"
613 33aa809d 2019-08-08 stsp return 1
614 33aa809d 2019-08-08 stsp fi
615 33aa809d 2019-08-08 stsp
616 33aa809d 2019-08-08 stsp (cd $testroot/wt && got status > $testroot/stdout)
617 33aa809d 2019-08-08 stsp echo "M numbers" > $testroot/stdout.expected
618 33aa809d 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
619 33aa809d 2019-08-08 stsp ret="$?"
620 33aa809d 2019-08-08 stsp if [ "$ret" != "0" ]; then
621 33aa809d 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
622 33aa809d 2019-08-08 stsp test_done "$testroot" "$ret"
623 33aa809d 2019-08-08 stsp return 1
624 33aa809d 2019-08-08 stsp fi
625 33aa809d 2019-08-08 stsp
626 33aa809d 2019-08-08 stsp (cd $testroot/wt && got diff > $testroot/stdout)
627 33aa809d 2019-08-08 stsp
628 33aa809d 2019-08-08 stsp echo "diff $commit_id $testroot/wt" > $testroot/stdout.expected
629 33aa809d 2019-08-08 stsp echo -n 'blob - ' >> $testroot/stdout.expected
630 33aa809d 2019-08-08 stsp got tree -r $testroot/repo -i -c $commit_id \
631 33aa809d 2019-08-08 stsp | grep 'numbers$' | cut -d' ' -f 1 \
632 33aa809d 2019-08-08 stsp >> $testroot/stdout.expected
633 33aa809d 2019-08-08 stsp echo 'file + numbers' >> $testroot/stdout.expected
634 33aa809d 2019-08-08 stsp cat >> $testroot/stdout.expected <<EOF
635 33aa809d 2019-08-08 stsp --- numbers
636 33aa809d 2019-08-08 stsp +++ numbers
637 33aa809d 2019-08-08 stsp @@ -1,5 +1,5 @@
638 33aa809d 2019-08-08 stsp 1
639 33aa809d 2019-08-08 stsp -2
640 33aa809d 2019-08-08 stsp +a
641 33aa809d 2019-08-08 stsp 3
642 33aa809d 2019-08-08 stsp 4
643 33aa809d 2019-08-08 stsp 5
644 33aa809d 2019-08-08 stsp @@ -13,4 +13,4 @@
645 33aa809d 2019-08-08 stsp 13
646 33aa809d 2019-08-08 stsp 14
647 33aa809d 2019-08-08 stsp 15
648 33aa809d 2019-08-08 stsp -16
649 33aa809d 2019-08-08 stsp +c
650 33aa809d 2019-08-08 stsp EOF
651 33aa809d 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
652 33aa809d 2019-08-08 stsp ret="$?"
653 33aa809d 2019-08-08 stsp if [ "$ret" != "0" ]; then
654 33aa809d 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
655 33aa809d 2019-08-08 stsp test_done "$testroot" "$ret"
656 33aa809d 2019-08-08 stsp return 1
657 0f6d7415 2019-08-08 stsp fi
658 33aa809d 2019-08-08 stsp
659 33aa809d 2019-08-08 stsp # revert last hunk
660 33aa809d 2019-08-08 stsp printf "n\ny\n" > $testroot/patchscript
661 33aa809d 2019-08-08 stsp (cd $testroot/wt && got revert -F $testroot/patchscript -p \
662 33aa809d 2019-08-08 stsp numbers > $testroot/stdout)
663 33aa809d 2019-08-08 stsp cat > $testroot/stdout.expected <<EOF
664 33aa809d 2019-08-08 stsp -----------------------------------------------
665 33aa809d 2019-08-08 stsp @@ -1,5 +1,5 @@
666 33aa809d 2019-08-08 stsp 1
667 33aa809d 2019-08-08 stsp -2
668 33aa809d 2019-08-08 stsp +a
669 33aa809d 2019-08-08 stsp 3
670 33aa809d 2019-08-08 stsp 4
671 33aa809d 2019-08-08 stsp 5
672 33aa809d 2019-08-08 stsp -----------------------------------------------
673 33aa809d 2019-08-08 stsp M numbers (change 1 of 2)
674 33aa809d 2019-08-08 stsp revert this change? [y/n/q] n
675 33aa809d 2019-08-08 stsp -----------------------------------------------
676 33aa809d 2019-08-08 stsp @@ -13,4 +13,4 @@
677 33aa809d 2019-08-08 stsp 13
678 33aa809d 2019-08-08 stsp 14
679 33aa809d 2019-08-08 stsp 15
680 33aa809d 2019-08-08 stsp -16
681 33aa809d 2019-08-08 stsp +c
682 33aa809d 2019-08-08 stsp -----------------------------------------------
683 33aa809d 2019-08-08 stsp M numbers (change 2 of 2)
684 33aa809d 2019-08-08 stsp revert this change? [y/n/q] y
685 33aa809d 2019-08-08 stsp EOF
686 33aa809d 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
687 33aa809d 2019-08-08 stsp ret="$?"
688 33aa809d 2019-08-08 stsp if [ "$ret" != "0" ]; then
689 33aa809d 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
690 33aa809d 2019-08-08 stsp test_done "$testroot" "$ret"
691 33aa809d 2019-08-08 stsp return 1
692 33aa809d 2019-08-08 stsp fi
693 33aa809d 2019-08-08 stsp
694 33aa809d 2019-08-08 stsp (cd $testroot/wt && got diff > $testroot/stdout)
695 33aa809d 2019-08-08 stsp
696 33aa809d 2019-08-08 stsp echo "diff $commit_id $testroot/wt" > $testroot/stdout.expected
697 33aa809d 2019-08-08 stsp echo -n 'blob - ' >> $testroot/stdout.expected
698 33aa809d 2019-08-08 stsp got tree -r $testroot/repo -i -c $commit_id \
699 33aa809d 2019-08-08 stsp | grep 'numbers$' | cut -d' ' -f 1 \
700 33aa809d 2019-08-08 stsp >> $testroot/stdout.expected
701 33aa809d 2019-08-08 stsp echo 'file + numbers' >> $testroot/stdout.expected
702 33aa809d 2019-08-08 stsp cat >> $testroot/stdout.expected <<EOF
703 33aa809d 2019-08-08 stsp --- numbers
704 33aa809d 2019-08-08 stsp +++ numbers
705 33aa809d 2019-08-08 stsp @@ -1,5 +1,5 @@
706 33aa809d 2019-08-08 stsp 1
707 33aa809d 2019-08-08 stsp -2
708 33aa809d 2019-08-08 stsp +a
709 33aa809d 2019-08-08 stsp 3
710 33aa809d 2019-08-08 stsp 4
711 33aa809d 2019-08-08 stsp 5
712 33aa809d 2019-08-08 stsp EOF
713 33aa809d 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
714 33aa809d 2019-08-08 stsp ret="$?"
715 33aa809d 2019-08-08 stsp if [ "$ret" != "0" ]; then
716 33aa809d 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
717 33aa809d 2019-08-08 stsp fi
718 1f1abb7e 2019-08-08 stsp test_done "$testroot" "$ret"
719 33aa809d 2019-08-08 stsp }
720 0f6d7415 2019-08-08 stsp
721 33aa809d 2019-08-08 stsp function test_revert_patch_added {
722 33aa809d 2019-08-08 stsp local testroot=`test_init revert_patch_added`
723 33aa809d 2019-08-08 stsp local commit_id=`git_show_head $testroot/repo`
724 33aa809d 2019-08-08 stsp
725 33aa809d 2019-08-08 stsp got checkout $testroot/repo $testroot/wt > /dev/null
726 33aa809d 2019-08-08 stsp ret="$?"
727 33aa809d 2019-08-08 stsp if [ "$ret" != "0" ]; then
728 33aa809d 2019-08-08 stsp test_done "$testroot" "$ret"
729 33aa809d 2019-08-08 stsp return 1
730 33aa809d 2019-08-08 stsp fi
731 33aa809d 2019-08-08 stsp
732 33aa809d 2019-08-08 stsp echo "new" > $testroot/wt/epsilon/new
733 33aa809d 2019-08-08 stsp (cd $testroot/wt && got add epsilon/new > /dev/null)
734 33aa809d 2019-08-08 stsp
735 33aa809d 2019-08-08 stsp printf "n\n" > $testroot/patchscript
736 33aa809d 2019-08-08 stsp (cd $testroot/wt && got revert -F $testroot/patchscript -p \
737 33aa809d 2019-08-08 stsp epsilon/new > $testroot/stdout)
738 33aa809d 2019-08-08 stsp
739 33aa809d 2019-08-08 stsp echo "A epsilon/new" > $testroot/stdout.expected
740 33aa809d 2019-08-08 stsp echo "revert this addition? [y/n] n" >> $testroot/stdout.expected
741 33aa809d 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
742 33aa809d 2019-08-08 stsp ret="$?"
743 33aa809d 2019-08-08 stsp if [ "$ret" != "0" ]; then
744 33aa809d 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
745 33aa809d 2019-08-08 stsp test_done "$testroot" "$ret"
746 33aa809d 2019-08-08 stsp return 1
747 33aa809d 2019-08-08 stsp fi
748 33aa809d 2019-08-08 stsp
749 33aa809d 2019-08-08 stsp (cd $testroot/wt && got status > $testroot/stdout)
750 33aa809d 2019-08-08 stsp echo "A epsilon/new" > $testroot/stdout.expected
751 33aa809d 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
752 33aa809d 2019-08-08 stsp ret="$?"
753 33aa809d 2019-08-08 stsp if [ "$ret" != "0" ]; then
754 33aa809d 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
755 33aa809d 2019-08-08 stsp test_done "$testroot" "$ret"
756 33aa809d 2019-08-08 stsp return 1
757 33aa809d 2019-08-08 stsp fi
758 33aa809d 2019-08-08 stsp
759 33aa809d 2019-08-08 stsp printf "y\n" > $testroot/patchscript
760 33aa809d 2019-08-08 stsp (cd $testroot/wt && got revert -F $testroot/patchscript -p \
761 33aa809d 2019-08-08 stsp epsilon/new > $testroot/stdout)
762 33aa809d 2019-08-08 stsp
763 33aa809d 2019-08-08 stsp echo "A epsilon/new" > $testroot/stdout.expected
764 33aa809d 2019-08-08 stsp echo "revert this addition? [y/n] y" >> $testroot/stdout.expected
765 33aa809d 2019-08-08 stsp echo "R epsilon/new" >> $testroot/stdout.expected
766 33aa809d 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
767 33aa809d 2019-08-08 stsp ret="$?"
768 33aa809d 2019-08-08 stsp if [ "$ret" != "0" ]; then
769 33aa809d 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
770 33aa809d 2019-08-08 stsp test_done "$testroot" "$ret"
771 33aa809d 2019-08-08 stsp return 1
772 33aa809d 2019-08-08 stsp fi
773 33aa809d 2019-08-08 stsp
774 33aa809d 2019-08-08 stsp (cd $testroot/wt && got status > $testroot/stdout)
775 33aa809d 2019-08-08 stsp echo "? epsilon/new" > $testroot/stdout.expected
776 33aa809d 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
777 33aa809d 2019-08-08 stsp ret="$?"
778 33aa809d 2019-08-08 stsp if [ "$ret" != "0" ]; then
779 33aa809d 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
780 33aa809d 2019-08-08 stsp fi
781 33aa809d 2019-08-08 stsp test_done "$testroot" "$ret"
782 1f1abb7e 2019-08-08 stsp }
783 1f1abb7e 2019-08-08 stsp
784 33aa809d 2019-08-08 stsp function test_revert_patch_removed {
785 33aa809d 2019-08-08 stsp local testroot=`test_init revert_patch_removed`
786 33aa809d 2019-08-08 stsp local commit_id=`git_show_head $testroot/repo`
787 33aa809d 2019-08-08 stsp
788 33aa809d 2019-08-08 stsp got checkout $testroot/repo $testroot/wt > /dev/null
789 33aa809d 2019-08-08 stsp ret="$?"
790 33aa809d 2019-08-08 stsp if [ "$ret" != "0" ]; then
791 33aa809d 2019-08-08 stsp test_done "$testroot" "$ret"
792 33aa809d 2019-08-08 stsp return 1
793 33aa809d 2019-08-08 stsp fi
794 33aa809d 2019-08-08 stsp
795 33aa809d 2019-08-08 stsp (cd $testroot/wt && got rm beta > /dev/null)
796 33aa809d 2019-08-08 stsp
797 33aa809d 2019-08-08 stsp printf "n\n" > $testroot/patchscript
798 33aa809d 2019-08-08 stsp (cd $testroot/wt && got revert -F $testroot/patchscript -p \
799 33aa809d 2019-08-08 stsp beta > $testroot/stdout)
800 33aa809d 2019-08-08 stsp echo "D beta" > $testroot/stdout.expected
801 33aa809d 2019-08-08 stsp echo "revert this deletion? [y/n] n" >> $testroot/stdout.expected
802 33aa809d 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
803 33aa809d 2019-08-08 stsp ret="$?"
804 33aa809d 2019-08-08 stsp if [ "$ret" != "0" ]; then
805 33aa809d 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
806 33aa809d 2019-08-08 stsp test_done "$testroot" "$ret"
807 33aa809d 2019-08-08 stsp return 1
808 33aa809d 2019-08-08 stsp fi
809 33aa809d 2019-08-08 stsp
810 33aa809d 2019-08-08 stsp (cd $testroot/wt && got status > $testroot/stdout)
811 33aa809d 2019-08-08 stsp echo "D beta" > $testroot/stdout.expected
812 33aa809d 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
813 33aa809d 2019-08-08 stsp ret="$?"
814 33aa809d 2019-08-08 stsp if [ "$ret" != "0" ]; then
815 33aa809d 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
816 33aa809d 2019-08-08 stsp test_done "$testroot" "$ret"
817 33aa809d 2019-08-08 stsp return 1
818 33aa809d 2019-08-08 stsp fi
819 33aa809d 2019-08-08 stsp
820 33aa809d 2019-08-08 stsp printf "y\n" > $testroot/patchscript
821 33aa809d 2019-08-08 stsp (cd $testroot/wt && got revert -F $testroot/patchscript -p \
822 33aa809d 2019-08-08 stsp beta > $testroot/stdout)
823 33aa809d 2019-08-08 stsp
824 33aa809d 2019-08-08 stsp echo "D beta" > $testroot/stdout.expected
825 33aa809d 2019-08-08 stsp echo "revert this deletion? [y/n] y" >> $testroot/stdout.expected
826 33aa809d 2019-08-08 stsp echo "R beta" >> $testroot/stdout.expected
827 33aa809d 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
828 33aa809d 2019-08-08 stsp ret="$?"
829 33aa809d 2019-08-08 stsp if [ "$ret" != "0" ]; then
830 33aa809d 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
831 33aa809d 2019-08-08 stsp test_done "$testroot" "$ret"
832 33aa809d 2019-08-08 stsp return 1
833 33aa809d 2019-08-08 stsp fi
834 33aa809d 2019-08-08 stsp
835 33aa809d 2019-08-08 stsp (cd $testroot/wt && got status > $testroot/stdout)
836 33aa809d 2019-08-08 stsp echo -n > $testroot/stdout.expected
837 33aa809d 2019-08-08 stsp cmp -s $testroot/stdout.expected $testroot/stdout
838 33aa809d 2019-08-08 stsp ret="$?"
839 33aa809d 2019-08-08 stsp if [ "$ret" != "0" ]; then
840 33aa809d 2019-08-08 stsp diff -u $testroot/stdout.expected $testroot/stdout
841 33aa809d 2019-08-08 stsp fi
842 33aa809d 2019-08-08 stsp test_done "$testroot" "$ret"
843 33aa809d 2019-08-08 stsp }
844 f1e81a05 2019-08-10 stsp
845 f1e81a05 2019-08-10 stsp function test_revert_patch_one_change {
846 f1e81a05 2019-08-10 stsp local testroot=`test_init revert_patch_one_change`
847 f1e81a05 2019-08-10 stsp
848 f1e81a05 2019-08-10 stsp jot 16 > $testroot/repo/numbers
849 f1e81a05 2019-08-10 stsp (cd $testroot/repo && git add numbers)
850 f1e81a05 2019-08-10 stsp git_commit $testroot/repo -m "added numbers file"
851 f1e81a05 2019-08-10 stsp local commit_id=`git_show_head $testroot/repo`
852 f1e81a05 2019-08-10 stsp
853 f1e81a05 2019-08-10 stsp got checkout $testroot/repo $testroot/wt > /dev/null
854 f1e81a05 2019-08-10 stsp ret="$?"
855 f1e81a05 2019-08-10 stsp if [ "$ret" != "0" ]; then
856 f1e81a05 2019-08-10 stsp test_done "$testroot" "$ret"
857 f1e81a05 2019-08-10 stsp return 1
858 f1e81a05 2019-08-10 stsp fi
859 f1e81a05 2019-08-10 stsp
860 6c6b73bb 2019-08-10 stsp # Ensure file size is changed. Avoids race condition causing test
861 6c6b73bb 2019-08-10 stsp # failures where 'got revert' does not see changes to revert if
862 6c6b73bb 2019-08-10 stsp # timestamps and size in stat info remain unchanged.
863 6c6b73bb 2019-08-10 stsp sed -i -e 's/^2$/aa/' $testroot/wt/numbers
864 33aa809d 2019-08-08 stsp
865 f1e81a05 2019-08-10 stsp # revert change with -p
866 f1e81a05 2019-08-10 stsp printf "y\n" > $testroot/patchscript
867 f1e81a05 2019-08-10 stsp (cd $testroot/wt && got revert -F $testroot/patchscript -p \
868 f1e81a05 2019-08-10 stsp numbers > $testroot/stdout)
869 f1e81a05 2019-08-10 stsp ret="$?"
870 f1e81a05 2019-08-10 stsp if [ "$ret" != "0" ]; then
871 f1e81a05 2019-08-10 stsp echo "got revert command failed unexpectedly" >&2
872 f1e81a05 2019-08-10 stsp test_done "$testroot" "1"
873 f1e81a05 2019-08-10 stsp return 1
874 f1e81a05 2019-08-10 stsp fi
875 f1e81a05 2019-08-10 stsp cat > $testroot/stdout.expected <<EOF
876 f1e81a05 2019-08-10 stsp -----------------------------------------------
877 f1e81a05 2019-08-10 stsp @@ -1,5 +1,5 @@
878 f1e81a05 2019-08-10 stsp 1
879 f1e81a05 2019-08-10 stsp -2
880 6c6b73bb 2019-08-10 stsp +aa
881 f1e81a05 2019-08-10 stsp 3
882 f1e81a05 2019-08-10 stsp 4
883 f1e81a05 2019-08-10 stsp 5
884 f1e81a05 2019-08-10 stsp -----------------------------------------------
885 f1e81a05 2019-08-10 stsp M numbers (change 1 of 1)
886 f1e81a05 2019-08-10 stsp revert this change? [y/n/q] y
887 f1e81a05 2019-08-10 stsp EOF
888 6c6b73bb 2019-08-10 stsp ret="$?"
889 6c6b73bb 2019-08-10 stsp if [ "$ret" != "0" ]; then
890 6c6b73bb 2019-08-10 stsp echo "got revert command failed unexpectedly" >&2
891 6c6b73bb 2019-08-10 stsp test_done "$testroot" "1"
892 6c6b73bb 2019-08-10 stsp return 1
893 6c6b73bb 2019-08-10 stsp fi
894 6c6b73bb 2019-08-10 stsp
895 f1e81a05 2019-08-10 stsp cmp -s $testroot/stdout.expected $testroot/stdout
896 f1e81a05 2019-08-10 stsp ret="$?"
897 f1e81a05 2019-08-10 stsp if [ "$ret" != "0" ]; then
898 f1e81a05 2019-08-10 stsp diff -u $testroot/stdout.expected $testroot/stdout
899 f1e81a05 2019-08-10 stsp test_done "$testroot" "$ret"
900 f1e81a05 2019-08-10 stsp return 1
901 f1e81a05 2019-08-10 stsp fi
902 f1e81a05 2019-08-10 stsp
903 f1e81a05 2019-08-10 stsp (cd $testroot/wt && got status > $testroot/stdout)
904 f1e81a05 2019-08-10 stsp echo -n > $testroot/stdout.expected
905 f1e81a05 2019-08-10 stsp cmp -s $testroot/stdout.expected $testroot/stdout
906 f1e81a05 2019-08-10 stsp ret="$?"
907 f1e81a05 2019-08-10 stsp if [ "$ret" != "0" ]; then
908 f1e81a05 2019-08-10 stsp diff -u $testroot/stdout.expected $testroot/stdout
909 f1e81a05 2019-08-10 stsp test_done "$testroot" "$ret"
910 f1e81a05 2019-08-10 stsp return 1
911 f1e81a05 2019-08-10 stsp fi
912 f1e81a05 2019-08-10 stsp
913 f1e81a05 2019-08-10 stsp (cd $testroot/wt && got diff > $testroot/stdout)
914 f1e81a05 2019-08-10 stsp echo -n > $testroot/stdout.expected
915 f1e81a05 2019-08-10 stsp cmp -s $testroot/stdout.expected $testroot/stdout
916 f1e81a05 2019-08-10 stsp ret="$?"
917 f1e81a05 2019-08-10 stsp if [ "$ret" != "0" ]; then
918 f1e81a05 2019-08-10 stsp diff -u $testroot/stdout.expected $testroot/stdout
919 f1e81a05 2019-08-10 stsp fi
920 f1e81a05 2019-08-10 stsp test_done "$testroot" "$ret"
921 f1e81a05 2019-08-10 stsp }
922 a46b9f33 2020-01-28 stsp
923 a46b9f33 2020-01-28 stsp function test_revert_added_subtree {
924 a46b9f33 2020-01-28 stsp local testroot=`test_init revert_added_subtree`
925 f1e81a05 2019-08-10 stsp
926 a46b9f33 2020-01-28 stsp got checkout $testroot/repo $testroot/wt > /dev/null
927 a46b9f33 2020-01-28 stsp ret="$?"
928 a46b9f33 2020-01-28 stsp if [ "$ret" != "0" ]; then
929 a46b9f33 2020-01-28 stsp test_done "$testroot" "$ret"
930 a46b9f33 2020-01-28 stsp return 1
931 a46b9f33 2020-01-28 stsp fi
932 a46b9f33 2020-01-28 stsp
933 a46b9f33 2020-01-28 stsp mkdir -p $testroot/wt/epsilon/foo/bar/baz
934 a46b9f33 2020-01-28 stsp mkdir -p $testroot/wt/epsilon/foo/bar/bax
935 a46b9f33 2020-01-28 stsp echo "new file" > $testroot/wt/epsilon/foo/a.o
936 a46b9f33 2020-01-28 stsp echo "new file" > $testroot/wt/epsilon/foo/a.o
937 a46b9f33 2020-01-28 stsp echo "new file" > $testroot/wt/epsilon/foo/bar/b.o
938 a46b9f33 2020-01-28 stsp echo "new file" > $testroot/wt/epsilon/foo/bar/b.d
939 a46b9f33 2020-01-28 stsp echo "new file" > $testroot/wt/epsilon/foo/bar/baz/f.o
940 a46b9f33 2020-01-28 stsp echo "new file" > $testroot/wt/epsilon/foo/bar/baz/f.d
941 a46b9f33 2020-01-28 stsp echo "new file" > $testroot/wt/epsilon/foo/bar/baz/c.o
942 a46b9f33 2020-01-28 stsp echo "new file" > $testroot/wt/epsilon/foo/bar/baz/c.d
943 a46b9f33 2020-01-28 stsp echo "new file" > $testroot/wt/epsilon/foo/bar/bax/e.o
944 a46b9f33 2020-01-28 stsp echo "new file" > $testroot/wt/epsilon/foo/bar/bax/e.d
945 a46b9f33 2020-01-28 stsp echo "new file" > $testroot/wt/epsilon/foo/bar/bax/x.o
946 a46b9f33 2020-01-28 stsp echo "new file" > $testroot/wt/epsilon/foo/bar/bax/x.d
947 a46b9f33 2020-01-28 stsp (cd $testroot/wt && got add -R epsilon >/dev/null)
948 a46b9f33 2020-01-28 stsp
949 a46b9f33 2020-01-28 stsp echo "R epsilon/foo/a.o" > $testroot/stdout.expected
950 a46b9f33 2020-01-28 stsp echo "R epsilon/foo/bar/b.d" >> $testroot/stdout.expected
951 a46b9f33 2020-01-28 stsp echo "R epsilon/foo/bar/b.o" >> $testroot/stdout.expected
952 a46b9f33 2020-01-28 stsp echo "R epsilon/foo/bar/bax/e.d" >> $testroot/stdout.expected
953 a46b9f33 2020-01-28 stsp echo "R epsilon/foo/bar/bax/e.o" >> $testroot/stdout.expected
954 a46b9f33 2020-01-28 stsp echo "R epsilon/foo/bar/bax/x.d" >> $testroot/stdout.expected
955 a46b9f33 2020-01-28 stsp echo "R epsilon/foo/bar/bax/x.o" >> $testroot/stdout.expected
956 a46b9f33 2020-01-28 stsp echo "R epsilon/foo/bar/baz/c.d" >> $testroot/stdout.expected
957 a46b9f33 2020-01-28 stsp echo "R epsilon/foo/bar/baz/c.o" >> $testroot/stdout.expected
958 a46b9f33 2020-01-28 stsp echo "R epsilon/foo/bar/baz/f.d" >> $testroot/stdout.expected
959 a46b9f33 2020-01-28 stsp echo "R epsilon/foo/bar/baz/f.o" >> $testroot/stdout.expected
960 a46b9f33 2020-01-28 stsp
961 a46b9f33 2020-01-28 stsp (cd $testroot/wt && got revert -R . > $testroot/stdout)
962 a46b9f33 2020-01-28 stsp
963 a46b9f33 2020-01-28 stsp cmp -s $testroot/stdout.expected $testroot/stdout
964 a46b9f33 2020-01-28 stsp ret="$?"
965 a46b9f33 2020-01-28 stsp if [ "$ret" != "0" ]; then
966 a46b9f33 2020-01-28 stsp diff -u $testroot/stdout.expected $testroot/stdout
967 a46b9f33 2020-01-28 stsp test_done "$testroot" "$ret"
968 a46b9f33 2020-01-28 stsp return 1
969 a46b9f33 2020-01-28 stsp fi
970 a46b9f33 2020-01-28 stsp
971 a46b9f33 2020-01-28 stsp echo "? epsilon/foo/a.o" > $testroot/stdout.expected
972 a46b9f33 2020-01-28 stsp echo "? epsilon/foo/bar/b.d" >> $testroot/stdout.expected
973 a46b9f33 2020-01-28 stsp echo "? epsilon/foo/bar/b.o" >> $testroot/stdout.expected
974 a46b9f33 2020-01-28 stsp echo "? epsilon/foo/bar/bax/e.d" >> $testroot/stdout.expected
975 a46b9f33 2020-01-28 stsp echo "? epsilon/foo/bar/bax/e.o" >> $testroot/stdout.expected
976 a46b9f33 2020-01-28 stsp echo "? epsilon/foo/bar/bax/x.d" >> $testroot/stdout.expected
977 a46b9f33 2020-01-28 stsp echo "? epsilon/foo/bar/bax/x.o" >> $testroot/stdout.expected
978 a46b9f33 2020-01-28 stsp echo "? epsilon/foo/bar/baz/c.d" >> $testroot/stdout.expected
979 a46b9f33 2020-01-28 stsp echo "? epsilon/foo/bar/baz/c.o" >> $testroot/stdout.expected
980 a46b9f33 2020-01-28 stsp echo "? epsilon/foo/bar/baz/f.d" >> $testroot/stdout.expected
981 a46b9f33 2020-01-28 stsp echo "? epsilon/foo/bar/baz/f.o" >> $testroot/stdout.expected
982 15341bfd 2020-03-05 tracey
983 15341bfd 2020-03-05 tracey (cd $testroot/wt && got status > $testroot/stdout)
984 15341bfd 2020-03-05 tracey
985 15341bfd 2020-03-05 tracey cmp -s $testroot/stdout.expected $testroot/stdout
986 15341bfd 2020-03-05 tracey ret="$?"
987 15341bfd 2020-03-05 tracey if [ "$ret" != "0" ]; then
988 15341bfd 2020-03-05 tracey diff -u $testroot/stdout.expected $testroot/stdout
989 15341bfd 2020-03-05 tracey fi
990 15341bfd 2020-03-05 tracey test_done "$testroot" "$ret"
991 15341bfd 2020-03-05 tracey }
992 15341bfd 2020-03-05 tracey
993 15341bfd 2020-03-05 tracey function test_revert_deleted_subtree {
994 15341bfd 2020-03-05 tracey local testroot=`test_init revert_deleted_subtree`
995 15341bfd 2020-03-05 tracey
996 15341bfd 2020-03-05 tracey got checkout $testroot/repo $testroot/wt > /dev/null
997 15341bfd 2020-03-05 tracey ret="$?"
998 15341bfd 2020-03-05 tracey if [ "$ret" != "0" ]; then
999 15341bfd 2020-03-05 tracey test_done "$testroot" "$ret"
1000 15341bfd 2020-03-05 tracey return 1
1001 15341bfd 2020-03-05 tracey fi
1002 15341bfd 2020-03-05 tracey
1003 15341bfd 2020-03-05 tracey mkdir -p $testroot/wt/epsilon/foo/bar/baz
1004 15341bfd 2020-03-05 tracey mkdir -p $testroot/wt/epsilon/foo/bar/bax
1005 15341bfd 2020-03-05 tracey echo "new file" > $testroot/wt/epsilon/foo/a.o
1006 15341bfd 2020-03-05 tracey echo "new file" > $testroot/wt/epsilon/foo/a.o
1007 15341bfd 2020-03-05 tracey echo "new file" > $testroot/wt/epsilon/foo/bar/b.o
1008 15341bfd 2020-03-05 tracey echo "new file" > $testroot/wt/epsilon/foo/bar/b.d
1009 15341bfd 2020-03-05 tracey echo "new file" > $testroot/wt/epsilon/foo/bar/baz/f.o
1010 15341bfd 2020-03-05 tracey echo "new file" > $testroot/wt/epsilon/foo/bar/baz/f.d
1011 15341bfd 2020-03-05 tracey echo "new file" > $testroot/wt/epsilon/foo/bar/baz/c.o
1012 15341bfd 2020-03-05 tracey echo "new file" > $testroot/wt/epsilon/foo/bar/baz/c.d
1013 15341bfd 2020-03-05 tracey echo "new file" > $testroot/wt/epsilon/foo/bar/bax/e.o
1014 15341bfd 2020-03-05 tracey echo "new file" > $testroot/wt/epsilon/foo/bar/bax/e.d
1015 15341bfd 2020-03-05 tracey echo "new file" > $testroot/wt/epsilon/foo/bar/bax/x.o
1016 15341bfd 2020-03-05 tracey echo "new file" > $testroot/wt/epsilon/foo/bar/bax/x.d
1017 15341bfd 2020-03-05 tracey (cd $testroot/wt && got add -R epsilon >/dev/null)
1018 15341bfd 2020-03-05 tracey (cd $testroot/wt && got commit -m "add subtree" >/dev/null)
1019 a46b9f33 2020-01-28 stsp
1020 15341bfd 2020-03-05 tracey # now delete and revert the entire subtree
1021 15341bfd 2020-03-05 tracey (cd $testroot/wt && got rm -R epsilon/foo >/dev/null)
1022 15341bfd 2020-03-05 tracey
1023 15341bfd 2020-03-05 tracey echo "R epsilon/foo/a.o" > $testroot/stdout.expected
1024 15341bfd 2020-03-05 tracey echo "R epsilon/foo/bar/b.d" >> $testroot/stdout.expected
1025 15341bfd 2020-03-05 tracey echo "R epsilon/foo/bar/b.o" >> $testroot/stdout.expected
1026 15341bfd 2020-03-05 tracey echo "R epsilon/foo/bar/bax/e.d" >> $testroot/stdout.expected
1027 15341bfd 2020-03-05 tracey echo "R epsilon/foo/bar/bax/e.o" >> $testroot/stdout.expected
1028 15341bfd 2020-03-05 tracey echo "R epsilon/foo/bar/bax/x.d" >> $testroot/stdout.expected
1029 15341bfd 2020-03-05 tracey echo "R epsilon/foo/bar/bax/x.o" >> $testroot/stdout.expected
1030 15341bfd 2020-03-05 tracey echo "R epsilon/foo/bar/baz/c.d" >> $testroot/stdout.expected
1031 15341bfd 2020-03-05 tracey echo "R epsilon/foo/bar/baz/c.o" >> $testroot/stdout.expected
1032 15341bfd 2020-03-05 tracey echo "R epsilon/foo/bar/baz/f.d" >> $testroot/stdout.expected
1033 15341bfd 2020-03-05 tracey echo "R epsilon/foo/bar/baz/f.o" >> $testroot/stdout.expected
1034 15341bfd 2020-03-05 tracey
1035 15341bfd 2020-03-05 tracey (cd $testroot/wt && got revert -R . > $testroot/stdout)
1036 15341bfd 2020-03-05 tracey
1037 15341bfd 2020-03-05 tracey cmp -s $testroot/stdout.expected $testroot/stdout
1038 15341bfd 2020-03-05 tracey ret="$?"
1039 15341bfd 2020-03-05 tracey if [ "$ret" != "0" ]; then
1040 15341bfd 2020-03-05 tracey diff -u $testroot/stdout.expected $testroot/stdout
1041 15341bfd 2020-03-05 tracey test_done "$testroot" "$ret"
1042 15341bfd 2020-03-05 tracey return 1
1043 15341bfd 2020-03-05 tracey fi
1044 15341bfd 2020-03-05 tracey
1045 15341bfd 2020-03-05 tracey echo -n > $testroot/stdout.expected
1046 a46b9f33 2020-01-28 stsp (cd $testroot/wt && got status > $testroot/stdout)
1047 a46b9f33 2020-01-28 stsp
1048 a46b9f33 2020-01-28 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1049 a46b9f33 2020-01-28 stsp ret="$?"
1050 a46b9f33 2020-01-28 stsp if [ "$ret" != "0" ]; then
1051 a46b9f33 2020-01-28 stsp diff -u $testroot/stdout.expected $testroot/stdout
1052 a46b9f33 2020-01-28 stsp fi
1053 a46b9f33 2020-01-28 stsp test_done "$testroot" "$ret"
1054 a46b9f33 2020-01-28 stsp }
1055 a46b9f33 2020-01-28 stsp
1056 a129376b 2019-03-28 stsp run_test test_revert_basic
1057 a129376b 2019-03-28 stsp run_test test_revert_rm
1058 a129376b 2019-03-28 stsp run_test test_revert_add
1059 e20a8b6f 2019-06-04 stsp run_test test_revert_multiple
1060 a9fa2909 2019-07-27 stsp run_test test_revert_file_in_new_subdir
1061 1f1abb7e 2019-08-08 stsp run_test test_revert_no_arguments
1062 0f6d7415 2019-08-08 stsp run_test test_revert_directory
1063 3d69ad8d 2019-08-17 semarie run_test test_revert_directory_unknown
1064 33aa809d 2019-08-08 stsp run_test test_revert_patch
1065 33aa809d 2019-08-08 stsp run_test test_revert_patch_added
1066 33aa809d 2019-08-08 stsp run_test test_revert_patch_removed
1067 f1e81a05 2019-08-10 stsp run_test test_revert_patch_one_change
1068 a46b9f33 2020-01-28 stsp run_test test_revert_added_subtree
1069 15341bfd 2020-03-05 tracey run_test test_revert_deleted_subtree