Blame


1 818c7501 2019-07-11 stsp #!/bin/sh
2 818c7501 2019-07-11 stsp #
3 818c7501 2019-07-11 stsp # Copyright (c) 2019 Stefan Sperling <stsp@openbsd.org>
4 818c7501 2019-07-11 stsp #
5 818c7501 2019-07-11 stsp # Permission to use, copy, modify, and distribute this software for any
6 818c7501 2019-07-11 stsp # purpose with or without fee is hereby granted, provided that the above
7 818c7501 2019-07-11 stsp # copyright notice and this permission notice appear in all copies.
8 818c7501 2019-07-11 stsp #
9 818c7501 2019-07-11 stsp # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 818c7501 2019-07-11 stsp # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 818c7501 2019-07-11 stsp # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 818c7501 2019-07-11 stsp # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 818c7501 2019-07-11 stsp # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 818c7501 2019-07-11 stsp # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 818c7501 2019-07-11 stsp # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 818c7501 2019-07-11 stsp
17 818c7501 2019-07-11 stsp . ./common.sh
18 818c7501 2019-07-11 stsp
19 818c7501 2019-07-11 stsp function test_rebase_basic {
20 818c7501 2019-07-11 stsp local testroot=`test_init rebase_basic`
21 818c7501 2019-07-11 stsp
22 818c7501 2019-07-11 stsp (cd $testroot/repo && git checkout -q -b newbranch)
23 818c7501 2019-07-11 stsp echo "modified delta on branch" > $testroot/repo/gamma/delta
24 818c7501 2019-07-11 stsp git_commit $testroot/repo -m "committing to delta on newbranch"
25 818c7501 2019-07-11 stsp
26 818c7501 2019-07-11 stsp echo "modified alpha on branch" > $testroot/repo/alpha
27 818c7501 2019-07-11 stsp (cd $testroot/repo && git rm -q beta)
28 818c7501 2019-07-11 stsp echo "new file on branch" > $testroot/repo/epsilon/new
29 818c7501 2019-07-11 stsp (cd $testroot/repo && git add epsilon/new)
30 818c7501 2019-07-11 stsp git_commit $testroot/repo -m "committing more changes on newbranch"
31 818c7501 2019-07-11 stsp
32 818c7501 2019-07-11 stsp local orig_commit1=`git_show_parent_commit $testroot/repo`
33 818c7501 2019-07-11 stsp local orig_commit2=`git_show_head $testroot/repo`
34 818c7501 2019-07-11 stsp
35 818c7501 2019-07-11 stsp (cd $testroot/repo && git checkout -q master)
36 818c7501 2019-07-11 stsp echo "modified zeta on master" > $testroot/repo/epsilon/zeta
37 818c7501 2019-07-11 stsp git_commit $testroot/repo -m "committing to zeta on master"
38 818c7501 2019-07-11 stsp local master_commit=`git_show_head $testroot/repo`
39 818c7501 2019-07-11 stsp
40 818c7501 2019-07-11 stsp got checkout $testroot/repo $testroot/wt > /dev/null
41 818c7501 2019-07-11 stsp ret="$?"
42 818c7501 2019-07-11 stsp if [ "$ret" != "0" ]; then
43 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
44 818c7501 2019-07-11 stsp return 1
45 818c7501 2019-07-11 stsp fi
46 818c7501 2019-07-11 stsp
47 818c7501 2019-07-11 stsp (cd $testroot/wt && got rebase newbranch > $testroot/stdout)
48 818c7501 2019-07-11 stsp
49 818c7501 2019-07-11 stsp (cd $testroot/repo && git checkout -q newbranch)
50 818c7501 2019-07-11 stsp local new_commit1=`git_show_parent_commit $testroot/repo`
51 818c7501 2019-07-11 stsp local new_commit2=`git_show_head $testroot/repo`
52 818c7501 2019-07-11 stsp
53 818c7501 2019-07-11 stsp local short_orig_commit1=`trim_obj_id 28 $orig_commit1`
54 818c7501 2019-07-11 stsp local short_orig_commit2=`trim_obj_id 28 $orig_commit2`
55 818c7501 2019-07-11 stsp local short_new_commit1=`trim_obj_id 28 $new_commit1`
56 818c7501 2019-07-11 stsp local short_new_commit2=`trim_obj_id 28 $new_commit2`
57 818c7501 2019-07-11 stsp
58 818c7501 2019-07-11 stsp echo "G gamma/delta" >> $testroot/stdout.expected
59 818c7501 2019-07-11 stsp echo -n "$short_orig_commit1 -> $short_new_commit1" \
60 818c7501 2019-07-11 stsp >> $testroot/stdout.expected
61 818c7501 2019-07-11 stsp echo ": committing to delta on newbranch" >> $testroot/stdout.expected
62 818c7501 2019-07-11 stsp echo "G alpha" >> $testroot/stdout.expected
63 818c7501 2019-07-11 stsp echo "D beta" >> $testroot/stdout.expected
64 818c7501 2019-07-11 stsp echo "A epsilon/new" >> $testroot/stdout.expected
65 818c7501 2019-07-11 stsp echo -n "$short_orig_commit2 -> $short_new_commit2" \
66 818c7501 2019-07-11 stsp >> $testroot/stdout.expected
67 818c7501 2019-07-11 stsp echo ": committing more changes on newbranch" \
68 818c7501 2019-07-11 stsp >> $testroot/stdout.expected
69 818c7501 2019-07-11 stsp echo "Switching work tree to refs/heads/newbranch" \
70 818c7501 2019-07-11 stsp >> $testroot/stdout.expected
71 818c7501 2019-07-11 stsp
72 818c7501 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
73 818c7501 2019-07-11 stsp ret="$?"
74 818c7501 2019-07-11 stsp if [ "$ret" != "0" ]; then
75 818c7501 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
76 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
77 818c7501 2019-07-11 stsp return 1
78 818c7501 2019-07-11 stsp fi
79 818c7501 2019-07-11 stsp
80 818c7501 2019-07-11 stsp echo "modified delta on branch" > $testroot/content.expected
81 818c7501 2019-07-11 stsp cat $testroot/wt/gamma/delta > $testroot/content
82 818c7501 2019-07-11 stsp cmp -s $testroot/content.expected $testroot/content
83 818c7501 2019-07-11 stsp ret="$?"
84 818c7501 2019-07-11 stsp if [ "$ret" != "0" ]; then
85 818c7501 2019-07-11 stsp diff -u $testroot/content.expected $testroot/content
86 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
87 818c7501 2019-07-11 stsp return 1
88 818c7501 2019-07-11 stsp fi
89 818c7501 2019-07-11 stsp
90 818c7501 2019-07-11 stsp echo "modified alpha on branch" > $testroot/content.expected
91 818c7501 2019-07-11 stsp cat $testroot/wt/alpha > $testroot/content
92 818c7501 2019-07-11 stsp cmp -s $testroot/content.expected $testroot/content
93 818c7501 2019-07-11 stsp ret="$?"
94 818c7501 2019-07-11 stsp if [ "$ret" != "0" ]; then
95 818c7501 2019-07-11 stsp diff -u $testroot/content.expected $testroot/content
96 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
97 818c7501 2019-07-11 stsp return 1
98 818c7501 2019-07-11 stsp fi
99 818c7501 2019-07-11 stsp
100 818c7501 2019-07-11 stsp if [ -e $testroot/wt/beta ]; then
101 818c7501 2019-07-11 stsp echo "removed file beta still exists on disk" >&2
102 818c7501 2019-07-11 stsp test_done "$testroot" "1"
103 818c7501 2019-07-11 stsp return 1
104 818c7501 2019-07-11 stsp fi
105 818c7501 2019-07-11 stsp
106 818c7501 2019-07-11 stsp echo "new file on branch" > $testroot/content.expected
107 818c7501 2019-07-11 stsp cat $testroot/wt/epsilon/new > $testroot/content
108 818c7501 2019-07-11 stsp cmp -s $testroot/content.expected $testroot/content
109 818c7501 2019-07-11 stsp ret="$?"
110 818c7501 2019-07-11 stsp if [ "$ret" != "0" ]; then
111 818c7501 2019-07-11 stsp diff -u $testroot/content.expected $testroot/content
112 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
113 818c7501 2019-07-11 stsp return 1
114 818c7501 2019-07-11 stsp fi
115 818c7501 2019-07-11 stsp
116 818c7501 2019-07-11 stsp (cd $testroot/wt && got status > $testroot/stdout)
117 818c7501 2019-07-11 stsp
118 818c7501 2019-07-11 stsp echo -n > $testroot/stdout.expected
119 818c7501 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
120 818c7501 2019-07-11 stsp ret="$?"
121 818c7501 2019-07-11 stsp if [ "$ret" != "0" ]; then
122 818c7501 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
123 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
124 818c7501 2019-07-11 stsp return 1
125 818c7501 2019-07-11 stsp fi
126 818c7501 2019-07-11 stsp
127 818c7501 2019-07-11 stsp (cd $testroot/wt && got log -l3 | grep ^commit > $testroot/stdout)
128 818c7501 2019-07-11 stsp echo "commit $new_commit2 (newbranch)" > $testroot/stdout.expected
129 818c7501 2019-07-11 stsp echo "commit $new_commit1" >> $testroot/stdout.expected
130 818c7501 2019-07-11 stsp echo "commit $master_commit (master)" >> $testroot/stdout.expected
131 818c7501 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
132 818c7501 2019-07-11 stsp ret="$?"
133 818c7501 2019-07-11 stsp if [ "$ret" != "0" ]; then
134 818c7501 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
135 818c7501 2019-07-11 stsp fi
136 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
137 818c7501 2019-07-11 stsp }
138 818c7501 2019-07-11 stsp
139 818c7501 2019-07-11 stsp function test_rebase_ancestry_check {
140 818c7501 2019-07-11 stsp local testroot=`test_init rebase_ancestry_check`
141 818c7501 2019-07-11 stsp
142 818c7501 2019-07-11 stsp got checkout $testroot/repo $testroot/wt > /dev/null
143 818c7501 2019-07-11 stsp ret="$?"
144 818c7501 2019-07-11 stsp if [ "$ret" != "0" ]; then
145 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
146 818c7501 2019-07-11 stsp return 1
147 818c7501 2019-07-11 stsp fi
148 818c7501 2019-07-11 stsp
149 818c7501 2019-07-11 stsp (cd $testroot/repo && git checkout -q -b newbranch)
150 818c7501 2019-07-11 stsp echo "modified delta on branch" > $testroot/repo/gamma/delta
151 818c7501 2019-07-11 stsp git_commit $testroot/repo -m "committing to delta on newbranch"
152 818c7501 2019-07-11 stsp
153 818c7501 2019-07-11 stsp (cd $testroot/wt && got rebase newbranch > $testroot/stdout \
154 818c7501 2019-07-11 stsp 2> $testroot/stderr)
155 818c7501 2019-07-11 stsp
156 818c7501 2019-07-11 stsp echo -n > $testroot/stdout.expected
157 818c7501 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
158 818c7501 2019-07-11 stsp ret="$?"
159 818c7501 2019-07-11 stsp if [ "$ret" != "0" ]; then
160 818c7501 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
161 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
162 818c7501 2019-07-11 stsp return 1
163 818c7501 2019-07-11 stsp fi
164 818c7501 2019-07-11 stsp
165 818c7501 2019-07-11 stsp echo -n "got: specified branch resolves to a commit " \
166 818c7501 2019-07-11 stsp > $testroot/stderr.expected
167 818c7501 2019-07-11 stsp echo "which is already contained in work tree's branch" \
168 818c7501 2019-07-11 stsp >> $testroot/stderr.expected
169 818c7501 2019-07-11 stsp cmp -s $testroot/stderr.expected $testroot/stderr
170 818c7501 2019-07-11 stsp ret="$?"
171 818c7501 2019-07-11 stsp if [ "$ret" != "0" ]; then
172 818c7501 2019-07-11 stsp diff -u $testroot/stderr.expected $testroot/stderr
173 818c7501 2019-07-11 stsp fi
174 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
175 818c7501 2019-07-11 stsp }
176 818c7501 2019-07-11 stsp
177 818c7501 2019-07-11 stsp function test_rebase_continue {
178 818c7501 2019-07-11 stsp local testroot=`test_init rebase_continue`
179 818c7501 2019-07-11 stsp
180 818c7501 2019-07-11 stsp (cd $testroot/repo && git checkout -q -b newbranch)
181 818c7501 2019-07-11 stsp echo "modified alpha on branch" > $testroot/repo/alpha
182 818c7501 2019-07-11 stsp git_commit $testroot/repo -m "committing to alpha on newbranch"
183 818c7501 2019-07-11 stsp local orig_commit1=`git_show_head $testroot/repo`
184 818c7501 2019-07-11 stsp
185 818c7501 2019-07-11 stsp (cd $testroot/repo && git checkout -q master)
186 818c7501 2019-07-11 stsp echo "modified alpha on master" > $testroot/repo/alpha
187 818c7501 2019-07-11 stsp git_commit $testroot/repo -m "committing to alpha on master"
188 818c7501 2019-07-11 stsp local master_commit=`git_show_head $testroot/repo`
189 818c7501 2019-07-11 stsp
190 818c7501 2019-07-11 stsp got checkout $testroot/repo $testroot/wt > /dev/null
191 818c7501 2019-07-11 stsp ret="$?"
192 818c7501 2019-07-11 stsp if [ "$ret" != "0" ]; then
193 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
194 818c7501 2019-07-11 stsp return 1
195 818c7501 2019-07-11 stsp fi
196 818c7501 2019-07-11 stsp
197 818c7501 2019-07-11 stsp (cd $testroot/wt && got rebase newbranch > $testroot/stdout \
198 818c7501 2019-07-11 stsp 2> $testroot/stderr)
199 818c7501 2019-07-11 stsp
200 818c7501 2019-07-11 stsp echo "C alpha" > $testroot/stdout.expected
201 818c7501 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
202 818c7501 2019-07-11 stsp ret="$?"
203 818c7501 2019-07-11 stsp if [ "$ret" != "0" ]; then
204 818c7501 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
205 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
206 818c7501 2019-07-11 stsp return 1
207 818c7501 2019-07-11 stsp fi
208 818c7501 2019-07-11 stsp
209 11495e04 2019-07-12 stsp echo "got: conflicts must be resolved before rebasing can continue" \
210 818c7501 2019-07-11 stsp > $testroot/stderr.expected
211 818c7501 2019-07-11 stsp cmp -s $testroot/stderr.expected $testroot/stderr
212 818c7501 2019-07-11 stsp ret="$?"
213 818c7501 2019-07-11 stsp if [ "$ret" != "0" ]; then
214 818c7501 2019-07-11 stsp diff -u $testroot/stderr.expected $testroot/stderr
215 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
216 818c7501 2019-07-11 stsp return 1
217 818c7501 2019-07-11 stsp fi
218 818c7501 2019-07-11 stsp
219 818c7501 2019-07-11 stsp echo "<<<<<<< commit $orig_commit1" > $testroot/content.expected
220 818c7501 2019-07-11 stsp echo "modified alpha on branch" >> $testroot/content.expected
221 818c7501 2019-07-11 stsp echo "=======" >> $testroot/content.expected
222 818c7501 2019-07-11 stsp echo "modified alpha on master" >> $testroot/content.expected
223 818c7501 2019-07-11 stsp echo '>>>>>>> alpha' >> $testroot/content.expected
224 818c7501 2019-07-11 stsp cat $testroot/wt/alpha > $testroot/content
225 818c7501 2019-07-11 stsp cmp -s $testroot/content.expected $testroot/content
226 818c7501 2019-07-11 stsp ret="$?"
227 818c7501 2019-07-11 stsp if [ "$ret" != "0" ]; then
228 818c7501 2019-07-11 stsp diff -u $testroot/content.expected $testroot/content
229 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
230 818c7501 2019-07-11 stsp return 1
231 818c7501 2019-07-11 stsp fi
232 818c7501 2019-07-11 stsp
233 818c7501 2019-07-11 stsp (cd $testroot/wt && got status > $testroot/stdout)
234 818c7501 2019-07-11 stsp
235 818c7501 2019-07-11 stsp echo "C alpha" > $testroot/stdout.expected
236 818c7501 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
237 818c7501 2019-07-11 stsp ret="$?"
238 818c7501 2019-07-11 stsp if [ "$ret" != "0" ]; then
239 818c7501 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
240 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
241 818c7501 2019-07-11 stsp return 1
242 818c7501 2019-07-11 stsp fi
243 818c7501 2019-07-11 stsp
244 818c7501 2019-07-11 stsp # resolve the conflict
245 818c7501 2019-07-11 stsp echo "modified alpha on branch and master" > $testroot/wt/alpha
246 818c7501 2019-07-11 stsp
247 818c7501 2019-07-11 stsp (cd $testroot/wt && got rebase -c > $testroot/stdout)
248 818c7501 2019-07-11 stsp
249 818c7501 2019-07-11 stsp (cd $testroot/repo && git checkout -q newbranch)
250 818c7501 2019-07-11 stsp local new_commit1=`git_show_head $testroot/repo`
251 818c7501 2019-07-11 stsp
252 818c7501 2019-07-11 stsp local short_orig_commit1=`trim_obj_id 28 $orig_commit1`
253 818c7501 2019-07-11 stsp local short_new_commit1=`trim_obj_id 28 $new_commit1`
254 818c7501 2019-07-11 stsp
255 818c7501 2019-07-11 stsp echo -n "$short_orig_commit1 -> $short_new_commit1" \
256 818c7501 2019-07-11 stsp > $testroot/stdout.expected
257 818c7501 2019-07-11 stsp echo ": committing to alpha on newbranch" >> $testroot/stdout.expected
258 818c7501 2019-07-11 stsp echo "Switching work tree to refs/heads/newbranch" \
259 818c7501 2019-07-11 stsp >> $testroot/stdout.expected
260 818c7501 2019-07-11 stsp
261 818c7501 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
262 818c7501 2019-07-11 stsp ret="$?"
263 818c7501 2019-07-11 stsp if [ "$ret" != "0" ]; then
264 818c7501 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
265 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
266 818c7501 2019-07-11 stsp return 1
267 818c7501 2019-07-11 stsp fi
268 818c7501 2019-07-11 stsp
269 818c7501 2019-07-11 stsp
270 818c7501 2019-07-11 stsp (cd $testroot/wt && got log -l2 | grep ^commit > $testroot/stdout)
271 818c7501 2019-07-11 stsp echo "commit $new_commit1 (newbranch)" > $testroot/stdout.expected
272 818c7501 2019-07-11 stsp echo "commit $master_commit (master)" >> $testroot/stdout.expected
273 818c7501 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
274 818c7501 2019-07-11 stsp ret="$?"
275 818c7501 2019-07-11 stsp if [ "$ret" != "0" ]; then
276 818c7501 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
277 818c7501 2019-07-11 stsp fi
278 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
279 818c7501 2019-07-11 stsp }
280 818c7501 2019-07-11 stsp
281 818c7501 2019-07-11 stsp function test_rebase_abort {
282 818c7501 2019-07-11 stsp local testroot=`test_init rebase_abort`
283 818c7501 2019-07-11 stsp
284 818c7501 2019-07-11 stsp local init_commit=`git_show_head $testroot/repo`
285 818c7501 2019-07-11 stsp
286 818c7501 2019-07-11 stsp (cd $testroot/repo && git checkout -q -b newbranch)
287 818c7501 2019-07-11 stsp echo "modified alpha on branch" > $testroot/repo/alpha
288 818c7501 2019-07-11 stsp git_commit $testroot/repo -m "committing to alpha on newbranch"
289 818c7501 2019-07-11 stsp local orig_commit1=`git_show_head $testroot/repo`
290 818c7501 2019-07-11 stsp
291 818c7501 2019-07-11 stsp (cd $testroot/repo && git checkout -q master)
292 818c7501 2019-07-11 stsp echo "modified alpha on master" > $testroot/repo/alpha
293 818c7501 2019-07-11 stsp git_commit $testroot/repo -m "committing to alpha on master"
294 818c7501 2019-07-11 stsp local master_commit=`git_show_head $testroot/repo`
295 818c7501 2019-07-11 stsp
296 818c7501 2019-07-11 stsp got checkout $testroot/repo $testroot/wt > /dev/null
297 818c7501 2019-07-11 stsp ret="$?"
298 818c7501 2019-07-11 stsp if [ "$ret" != "0" ]; then
299 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
300 818c7501 2019-07-11 stsp return 1
301 818c7501 2019-07-11 stsp fi
302 818c7501 2019-07-11 stsp
303 818c7501 2019-07-11 stsp (cd $testroot/wt && got rebase newbranch > $testroot/stdout \
304 818c7501 2019-07-11 stsp 2> $testroot/stderr)
305 818c7501 2019-07-11 stsp
306 818c7501 2019-07-11 stsp echo "C alpha" > $testroot/stdout.expected
307 818c7501 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
308 818c7501 2019-07-11 stsp ret="$?"
309 818c7501 2019-07-11 stsp if [ "$ret" != "0" ]; then
310 818c7501 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
311 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
312 818c7501 2019-07-11 stsp return 1
313 818c7501 2019-07-11 stsp fi
314 818c7501 2019-07-11 stsp
315 11495e04 2019-07-12 stsp echo "got: conflicts must be resolved before rebasing can continue" \
316 818c7501 2019-07-11 stsp > $testroot/stderr.expected
317 818c7501 2019-07-11 stsp cmp -s $testroot/stderr.expected $testroot/stderr
318 818c7501 2019-07-11 stsp ret="$?"
319 818c7501 2019-07-11 stsp if [ "$ret" != "0" ]; then
320 818c7501 2019-07-11 stsp diff -u $testroot/stderr.expected $testroot/stderr
321 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
322 818c7501 2019-07-11 stsp return 1
323 818c7501 2019-07-11 stsp fi
324 818c7501 2019-07-11 stsp
325 818c7501 2019-07-11 stsp echo "<<<<<<< commit $orig_commit1" > $testroot/content.expected
326 818c7501 2019-07-11 stsp echo "modified alpha on branch" >> $testroot/content.expected
327 818c7501 2019-07-11 stsp echo "=======" >> $testroot/content.expected
328 818c7501 2019-07-11 stsp echo "modified alpha on master" >> $testroot/content.expected
329 818c7501 2019-07-11 stsp echo '>>>>>>> alpha' >> $testroot/content.expected
330 818c7501 2019-07-11 stsp cat $testroot/wt/alpha > $testroot/content
331 818c7501 2019-07-11 stsp cmp -s $testroot/content.expected $testroot/content
332 818c7501 2019-07-11 stsp ret="$?"
333 818c7501 2019-07-11 stsp if [ "$ret" != "0" ]; then
334 818c7501 2019-07-11 stsp diff -u $testroot/content.expected $testroot/content
335 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
336 818c7501 2019-07-11 stsp return 1
337 818c7501 2019-07-11 stsp fi
338 818c7501 2019-07-11 stsp
339 818c7501 2019-07-11 stsp (cd $testroot/wt && got status > $testroot/stdout)
340 818c7501 2019-07-11 stsp
341 818c7501 2019-07-11 stsp echo "C alpha" > $testroot/stdout.expected
342 818c7501 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
343 818c7501 2019-07-11 stsp ret="$?"
344 818c7501 2019-07-11 stsp if [ "$ret" != "0" ]; then
345 818c7501 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
346 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
347 818c7501 2019-07-11 stsp return 1
348 818c7501 2019-07-11 stsp fi
349 818c7501 2019-07-11 stsp
350 818c7501 2019-07-11 stsp (cd $testroot/wt && got rebase -a > $testroot/stdout)
351 818c7501 2019-07-11 stsp
352 818c7501 2019-07-11 stsp (cd $testroot/repo && git checkout -q newbranch)
353 818c7501 2019-07-11 stsp
354 818c7501 2019-07-11 stsp echo "Switching work tree to refs/heads/master" \
355 818c7501 2019-07-11 stsp > $testroot/stdout.expected
356 818c7501 2019-07-11 stsp echo 'R alpha' >> $testroot/stdout.expected
357 818c7501 2019-07-11 stsp echo "Rebase of refs/heads/newbranch aborted" \
358 818c7501 2019-07-11 stsp >> $testroot/stdout.expected
359 818c7501 2019-07-11 stsp
360 818c7501 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
361 818c7501 2019-07-11 stsp ret="$?"
362 818c7501 2019-07-11 stsp if [ "$ret" != "0" ]; then
363 818c7501 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
364 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
365 818c7501 2019-07-11 stsp return 1
366 818c7501 2019-07-11 stsp fi
367 818c7501 2019-07-11 stsp
368 818c7501 2019-07-11 stsp echo "modified alpha on master" > $testroot/content.expected
369 818c7501 2019-07-11 stsp cat $testroot/wt/alpha > $testroot/content
370 818c7501 2019-07-11 stsp cmp -s $testroot/content.expected $testroot/content
371 818c7501 2019-07-11 stsp ret="$?"
372 818c7501 2019-07-11 stsp if [ "$ret" != "0" ]; then
373 818c7501 2019-07-11 stsp diff -u $testroot/content.expected $testroot/content
374 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
375 818c7501 2019-07-11 stsp return 1
376 818c7501 2019-07-11 stsp fi
377 818c7501 2019-07-11 stsp
378 818c7501 2019-07-11 stsp (cd $testroot/wt && got log -l3 -c newbranch \
379 818c7501 2019-07-11 stsp | grep ^commit > $testroot/stdout)
380 818c7501 2019-07-11 stsp echo "commit $orig_commit1 (newbranch)" > $testroot/stdout.expected
381 818c7501 2019-07-11 stsp echo "commit $init_commit" >> $testroot/stdout.expected
382 818c7501 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
383 818c7501 2019-07-11 stsp ret="$?"
384 818c7501 2019-07-11 stsp if [ "$ret" != "0" ]; then
385 818c7501 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
386 818c7501 2019-07-11 stsp fi
387 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
388 818c7501 2019-07-11 stsp }
389 818c7501 2019-07-11 stsp
390 ff0d2220 2019-07-11 stsp function test_rebase_no_op_change {
391 ff0d2220 2019-07-11 stsp local testroot=`test_init rebase_no_op_change`
392 ff0d2220 2019-07-11 stsp local init_commit=`git_show_head $testroot/repo`
393 ff0d2220 2019-07-11 stsp
394 ff0d2220 2019-07-11 stsp (cd $testroot/repo && git checkout -q -b newbranch)
395 ff0d2220 2019-07-11 stsp echo "modified alpha on branch" > $testroot/repo/alpha
396 ff0d2220 2019-07-11 stsp git_commit $testroot/repo -m "committing to alpha on newbranch"
397 ff0d2220 2019-07-11 stsp local orig_commit1=`git_show_head $testroot/repo`
398 ff0d2220 2019-07-11 stsp
399 ff0d2220 2019-07-11 stsp (cd $testroot/repo && git checkout -q master)
400 ff0d2220 2019-07-11 stsp echo "modified alpha on master" > $testroot/repo/alpha
401 ff0d2220 2019-07-11 stsp git_commit $testroot/repo -m "committing to alpha on master"
402 ff0d2220 2019-07-11 stsp local master_commit=`git_show_head $testroot/repo`
403 ff0d2220 2019-07-11 stsp
404 ff0d2220 2019-07-11 stsp got checkout $testroot/repo $testroot/wt > /dev/null
405 ff0d2220 2019-07-11 stsp ret="$?"
406 ff0d2220 2019-07-11 stsp if [ "$ret" != "0" ]; then
407 ff0d2220 2019-07-11 stsp test_done "$testroot" "$ret"
408 ff0d2220 2019-07-11 stsp return 1
409 ff0d2220 2019-07-11 stsp fi
410 ff0d2220 2019-07-11 stsp
411 ff0d2220 2019-07-11 stsp (cd $testroot/wt && got rebase newbranch > $testroot/stdout \
412 ff0d2220 2019-07-11 stsp 2> $testroot/stderr)
413 ff0d2220 2019-07-11 stsp
414 ff0d2220 2019-07-11 stsp echo "C alpha" > $testroot/stdout.expected
415 ff0d2220 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
416 ff0d2220 2019-07-11 stsp ret="$?"
417 ff0d2220 2019-07-11 stsp if [ "$ret" != "0" ]; then
418 ff0d2220 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
419 ff0d2220 2019-07-11 stsp test_done "$testroot" "$ret"
420 ff0d2220 2019-07-11 stsp return 1
421 ff0d2220 2019-07-11 stsp fi
422 ff0d2220 2019-07-11 stsp
423 11495e04 2019-07-12 stsp echo "got: conflicts must be resolved before rebasing can continue" \
424 ff0d2220 2019-07-11 stsp > $testroot/stderr.expected
425 ff0d2220 2019-07-11 stsp cmp -s $testroot/stderr.expected $testroot/stderr
426 ff0d2220 2019-07-11 stsp ret="$?"
427 ff0d2220 2019-07-11 stsp if [ "$ret" != "0" ]; then
428 ff0d2220 2019-07-11 stsp diff -u $testroot/stderr.expected $testroot/stderr
429 ff0d2220 2019-07-11 stsp test_done "$testroot" "$ret"
430 ff0d2220 2019-07-11 stsp return 1
431 ff0d2220 2019-07-11 stsp fi
432 ff0d2220 2019-07-11 stsp
433 ff0d2220 2019-07-11 stsp echo "<<<<<<< commit $orig_commit1" > $testroot/content.expected
434 ff0d2220 2019-07-11 stsp echo "modified alpha on branch" >> $testroot/content.expected
435 ff0d2220 2019-07-11 stsp echo "=======" >> $testroot/content.expected
436 ff0d2220 2019-07-11 stsp echo "modified alpha on master" >> $testroot/content.expected
437 ff0d2220 2019-07-11 stsp echo '>>>>>>> alpha' >> $testroot/content.expected
438 ff0d2220 2019-07-11 stsp cat $testroot/wt/alpha > $testroot/content
439 ff0d2220 2019-07-11 stsp cmp -s $testroot/content.expected $testroot/content
440 ff0d2220 2019-07-11 stsp ret="$?"
441 ff0d2220 2019-07-11 stsp if [ "$ret" != "0" ]; then
442 ff0d2220 2019-07-11 stsp diff -u $testroot/content.expected $testroot/content
443 ff0d2220 2019-07-11 stsp test_done "$testroot" "$ret"
444 ff0d2220 2019-07-11 stsp return 1
445 ff0d2220 2019-07-11 stsp fi
446 ff0d2220 2019-07-11 stsp
447 ff0d2220 2019-07-11 stsp (cd $testroot/wt && got status > $testroot/stdout)
448 ff0d2220 2019-07-11 stsp
449 ff0d2220 2019-07-11 stsp echo "C alpha" > $testroot/stdout.expected
450 ff0d2220 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
451 ff0d2220 2019-07-11 stsp ret="$?"
452 ff0d2220 2019-07-11 stsp if [ "$ret" != "0" ]; then
453 ff0d2220 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
454 ff0d2220 2019-07-11 stsp test_done "$testroot" "$ret"
455 ff0d2220 2019-07-11 stsp return 1
456 ff0d2220 2019-07-11 stsp fi
457 ff0d2220 2019-07-11 stsp
458 ff0d2220 2019-07-11 stsp # resolve the conflict
459 ff0d2220 2019-07-11 stsp echo "modified alpha on master" > $testroot/wt/alpha
460 ff0d2220 2019-07-11 stsp
461 ff0d2220 2019-07-11 stsp (cd $testroot/wt && got rebase -c > $testroot/stdout)
462 ff0d2220 2019-07-11 stsp
463 ff0d2220 2019-07-11 stsp (cd $testroot/repo && git checkout -q newbranch)
464 ff0d2220 2019-07-11 stsp local new_commit1=`git_show_head $testroot/repo`
465 ff0d2220 2019-07-11 stsp
466 ff0d2220 2019-07-11 stsp local short_orig_commit1=`trim_obj_id 28 $orig_commit1`
467 ff0d2220 2019-07-11 stsp
468 ff0d2220 2019-07-11 stsp echo -n "$short_orig_commit1 -> no-op change" \
469 ff0d2220 2019-07-11 stsp > $testroot/stdout.expected
470 ff0d2220 2019-07-11 stsp echo ": committing to alpha on newbranch" >> $testroot/stdout.expected
471 ff0d2220 2019-07-11 stsp echo "Switching work tree to refs/heads/newbranch" \
472 ff0d2220 2019-07-11 stsp >> $testroot/stdout.expected
473 ff0d2220 2019-07-11 stsp
474 ff0d2220 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
475 ff0d2220 2019-07-11 stsp ret="$?"
476 ff0d2220 2019-07-11 stsp if [ "$ret" != "0" ]; then
477 ff0d2220 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
478 ff0d2220 2019-07-11 stsp test_done "$testroot" "$ret"
479 ff0d2220 2019-07-11 stsp return 1
480 ff0d2220 2019-07-11 stsp fi
481 ff0d2220 2019-07-11 stsp
482 ff0d2220 2019-07-11 stsp
483 ff0d2220 2019-07-11 stsp (cd $testroot/wt && got log -l2 | grep ^commit > $testroot/stdout)
484 ff0d2220 2019-07-11 stsp echo "commit $master_commit (master, newbranch)" \
485 ff0d2220 2019-07-11 stsp > $testroot/stdout.expected
486 ff0d2220 2019-07-11 stsp echo "commit $init_commit" >> $testroot/stdout.expected
487 7d5807f4 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
488 7d5807f4 2019-07-11 stsp ret="$?"
489 7d5807f4 2019-07-11 stsp if [ "$ret" != "0" ]; then
490 7d5807f4 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
491 7d5807f4 2019-07-11 stsp fi
492 7d5807f4 2019-07-11 stsp test_done "$testroot" "$ret"
493 7d5807f4 2019-07-11 stsp }
494 7d5807f4 2019-07-11 stsp
495 7d5807f4 2019-07-11 stsp function test_rebase_in_progress {
496 4ba9c4f6 2019-07-11 stsp local testroot=`test_init rebase_in_progress`
497 7d5807f4 2019-07-11 stsp local init_commit=`git_show_head $testroot/repo`
498 7d5807f4 2019-07-11 stsp
499 7d5807f4 2019-07-11 stsp (cd $testroot/repo && git checkout -q -b newbranch)
500 7d5807f4 2019-07-11 stsp echo "modified alpha on branch" > $testroot/repo/alpha
501 7d5807f4 2019-07-11 stsp git_commit $testroot/repo -m "committing to alpha on newbranch"
502 7d5807f4 2019-07-11 stsp local orig_commit1=`git_show_head $testroot/repo`
503 7d5807f4 2019-07-11 stsp
504 7d5807f4 2019-07-11 stsp (cd $testroot/repo && git checkout -q master)
505 7d5807f4 2019-07-11 stsp echo "modified alpha on master" > $testroot/repo/alpha
506 7d5807f4 2019-07-11 stsp git_commit $testroot/repo -m "committing to alpha on master"
507 7d5807f4 2019-07-11 stsp local master_commit=`git_show_head $testroot/repo`
508 7d5807f4 2019-07-11 stsp
509 7d5807f4 2019-07-11 stsp got checkout $testroot/repo $testroot/wt > /dev/null
510 7d5807f4 2019-07-11 stsp ret="$?"
511 7d5807f4 2019-07-11 stsp if [ "$ret" != "0" ]; then
512 7d5807f4 2019-07-11 stsp test_done "$testroot" "$ret"
513 7d5807f4 2019-07-11 stsp return 1
514 7d5807f4 2019-07-11 stsp fi
515 7d5807f4 2019-07-11 stsp
516 7d5807f4 2019-07-11 stsp (cd $testroot/wt && got rebase newbranch > $testroot/stdout \
517 7d5807f4 2019-07-11 stsp 2> $testroot/stderr)
518 7d5807f4 2019-07-11 stsp
519 7d5807f4 2019-07-11 stsp echo "C alpha" > $testroot/stdout.expected
520 7d5807f4 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
521 7d5807f4 2019-07-11 stsp ret="$?"
522 7d5807f4 2019-07-11 stsp if [ "$ret" != "0" ]; then
523 7d5807f4 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
524 7d5807f4 2019-07-11 stsp test_done "$testroot" "$ret"
525 7d5807f4 2019-07-11 stsp return 1
526 7d5807f4 2019-07-11 stsp fi
527 7d5807f4 2019-07-11 stsp
528 11495e04 2019-07-12 stsp echo "got: conflicts must be resolved before rebasing can continue" \
529 7d5807f4 2019-07-11 stsp > $testroot/stderr.expected
530 7d5807f4 2019-07-11 stsp cmp -s $testroot/stderr.expected $testroot/stderr
531 7d5807f4 2019-07-11 stsp ret="$?"
532 7d5807f4 2019-07-11 stsp if [ "$ret" != "0" ]; then
533 7d5807f4 2019-07-11 stsp diff -u $testroot/stderr.expected $testroot/stderr
534 7d5807f4 2019-07-11 stsp test_done "$testroot" "$ret"
535 7d5807f4 2019-07-11 stsp return 1
536 7d5807f4 2019-07-11 stsp fi
537 7d5807f4 2019-07-11 stsp
538 7d5807f4 2019-07-11 stsp echo "<<<<<<< commit $orig_commit1" > $testroot/content.expected
539 7d5807f4 2019-07-11 stsp echo "modified alpha on branch" >> $testroot/content.expected
540 7d5807f4 2019-07-11 stsp echo "=======" >> $testroot/content.expected
541 7d5807f4 2019-07-11 stsp echo "modified alpha on master" >> $testroot/content.expected
542 7d5807f4 2019-07-11 stsp echo '>>>>>>> alpha' >> $testroot/content.expected
543 7d5807f4 2019-07-11 stsp cat $testroot/wt/alpha > $testroot/content
544 7d5807f4 2019-07-11 stsp cmp -s $testroot/content.expected $testroot/content
545 7d5807f4 2019-07-11 stsp ret="$?"
546 7d5807f4 2019-07-11 stsp if [ "$ret" != "0" ]; then
547 7d5807f4 2019-07-11 stsp diff -u $testroot/content.expected $testroot/content
548 7d5807f4 2019-07-11 stsp test_done "$testroot" "$ret"
549 7d5807f4 2019-07-11 stsp return 1
550 7d5807f4 2019-07-11 stsp fi
551 7d5807f4 2019-07-11 stsp
552 7d5807f4 2019-07-11 stsp (cd $testroot/wt && got status > $testroot/stdout)
553 7d5807f4 2019-07-11 stsp
554 7d5807f4 2019-07-11 stsp echo "C alpha" > $testroot/stdout.expected
555 ff0d2220 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
556 ff0d2220 2019-07-11 stsp ret="$?"
557 ff0d2220 2019-07-11 stsp if [ "$ret" != "0" ]; then
558 ff0d2220 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
559 7d5807f4 2019-07-11 stsp test_done "$testroot" "$ret"
560 7d5807f4 2019-07-11 stsp return 1
561 ff0d2220 2019-07-11 stsp fi
562 7d5807f4 2019-07-11 stsp
563 7d5807f4 2019-07-11 stsp for cmd in update commit; do
564 7d5807f4 2019-07-11 stsp (cd $testroot/wt && got $cmd > $testroot/stdout \
565 7d5807f4 2019-07-11 stsp 2> $testroot/stderr)
566 7d5807f4 2019-07-11 stsp
567 7d5807f4 2019-07-11 stsp echo -n > $testroot/stdout.expected
568 7d5807f4 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
569 7d5807f4 2019-07-11 stsp ret="$?"
570 7d5807f4 2019-07-11 stsp if [ "$ret" != "0" ]; then
571 7d5807f4 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
572 7d5807f4 2019-07-11 stsp test_done "$testroot" "$ret"
573 7d5807f4 2019-07-11 stsp return 1
574 7d5807f4 2019-07-11 stsp fi
575 7d5807f4 2019-07-11 stsp
576 7d5807f4 2019-07-11 stsp echo -n "got: a rebase operation is in progress in this " \
577 7d5807f4 2019-07-11 stsp > $testroot/stderr.expected
578 7d5807f4 2019-07-11 stsp echo "work tree and must be continued or aborted first" \
579 7d5807f4 2019-07-11 stsp >> $testroot/stderr.expected
580 7d5807f4 2019-07-11 stsp cmp -s $testroot/stderr.expected $testroot/stderr
581 7d5807f4 2019-07-11 stsp ret="$?"
582 7d5807f4 2019-07-11 stsp if [ "$ret" != "0" ]; then
583 7d5807f4 2019-07-11 stsp diff -u $testroot/stderr.expected $testroot/stderr
584 7d5807f4 2019-07-11 stsp test_done "$testroot" "$ret"
585 7d5807f4 2019-07-11 stsp return 1
586 7d5807f4 2019-07-11 stsp fi
587 7d5807f4 2019-07-11 stsp done
588 64c6d990 2019-07-11 stsp
589 64c6d990 2019-07-11 stsp test_done "$testroot" "$ret"
590 64c6d990 2019-07-11 stsp }
591 64c6d990 2019-07-11 stsp
592 64c6d990 2019-07-11 stsp function test_rebase_path_prefix {
593 64c6d990 2019-07-11 stsp local testroot=`test_init rebase_path_prefix`
594 64c6d990 2019-07-11 stsp
595 64c6d990 2019-07-11 stsp (cd $testroot/repo && git checkout -q -b newbranch)
596 64c6d990 2019-07-11 stsp echo "modified delta on branch" > $testroot/repo/gamma/delta
597 64c6d990 2019-07-11 stsp git_commit $testroot/repo -m "committing to delta on newbranch"
598 64c6d990 2019-07-11 stsp
599 64c6d990 2019-07-11 stsp local orig_commit1=`git_show_parent_commit $testroot/repo`
600 64c6d990 2019-07-11 stsp local orig_commit2=`git_show_head $testroot/repo`
601 64c6d990 2019-07-11 stsp
602 64c6d990 2019-07-11 stsp (cd $testroot/repo && git checkout -q master)
603 64c6d990 2019-07-11 stsp echo "modified zeta on master" > $testroot/repo/epsilon/zeta
604 64c6d990 2019-07-11 stsp git_commit $testroot/repo -m "committing to zeta on master"
605 64c6d990 2019-07-11 stsp local master_commit=`git_show_head $testroot/repo`
606 64c6d990 2019-07-11 stsp
607 64c6d990 2019-07-11 stsp got checkout -p epsilon $testroot/repo $testroot/wt > /dev/null
608 64c6d990 2019-07-11 stsp ret="$?"
609 64c6d990 2019-07-11 stsp if [ "$ret" != "0" ]; then
610 64c6d990 2019-07-11 stsp test_done "$testroot" "$ret"
611 64c6d990 2019-07-11 stsp return 1
612 64c6d990 2019-07-11 stsp fi
613 7d5807f4 2019-07-11 stsp
614 64c6d990 2019-07-11 stsp (cd $testroot/wt && got rebase newbranch \
615 64c6d990 2019-07-11 stsp > $testroot/stdout 2> $testroot/stderr)
616 64c6d990 2019-07-11 stsp
617 64c6d990 2019-07-11 stsp echo -n > $testroot/stdout.expected
618 64c6d990 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
619 64c6d990 2019-07-11 stsp ret="$?"
620 64c6d990 2019-07-11 stsp if [ "$ret" != "0" ]; then
621 64c6d990 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
622 64c6d990 2019-07-11 stsp test_done "$testroot" "$ret"
623 64c6d990 2019-07-11 stsp return 1
624 64c6d990 2019-07-11 stsp fi
625 64c6d990 2019-07-11 stsp
626 64c6d990 2019-07-11 stsp echo -n "got: cannot rebase branch which contains changes outside " \
627 64c6d990 2019-07-11 stsp > $testroot/stderr.expected
628 64c6d990 2019-07-11 stsp echo "of this work tree's path prefix" >> $testroot/stderr.expected
629 787c8eb6 2019-07-11 stsp cmp -s $testroot/stderr.expected $testroot/stderr
630 787c8eb6 2019-07-11 stsp ret="$?"
631 787c8eb6 2019-07-11 stsp if [ "$ret" != "0" ]; then
632 787c8eb6 2019-07-11 stsp diff -u $testroot/stderr.expected $testroot/stderr
633 787c8eb6 2019-07-11 stsp fi
634 787c8eb6 2019-07-11 stsp test_done "$testroot" "$ret"
635 787c8eb6 2019-07-11 stsp }
636 787c8eb6 2019-07-11 stsp
637 787c8eb6 2019-07-11 stsp function test_rebase_preserves_logmsg {
638 787c8eb6 2019-07-11 stsp local testroot=`test_init rebase_preserves_logmsg`
639 787c8eb6 2019-07-11 stsp
640 787c8eb6 2019-07-11 stsp (cd $testroot/repo && git checkout -q -b newbranch)
641 787c8eb6 2019-07-11 stsp echo "modified delta on branch" > $testroot/repo/gamma/delta
642 787c8eb6 2019-07-11 stsp git_commit $testroot/repo -m "modified delta on newbranch"
643 787c8eb6 2019-07-11 stsp
644 787c8eb6 2019-07-11 stsp echo "modified alpha on branch" > $testroot/repo/alpha
645 787c8eb6 2019-07-11 stsp git_commit $testroot/repo -m "modified alpha on newbranch"
646 787c8eb6 2019-07-11 stsp
647 787c8eb6 2019-07-11 stsp (cd $testroot/repo && got log -c newbranch -l2 | grep -v ^date: \
648 787c8eb6 2019-07-11 stsp > $testroot/log.expected)
649 787c8eb6 2019-07-11 stsp
650 787c8eb6 2019-07-11 stsp local orig_commit1=`git_show_parent_commit $testroot/repo`
651 787c8eb6 2019-07-11 stsp local orig_commit2=`git_show_head $testroot/repo`
652 787c8eb6 2019-07-11 stsp
653 787c8eb6 2019-07-11 stsp (cd $testroot/repo && git checkout -q master)
654 787c8eb6 2019-07-11 stsp echo "modified zeta on master" > $testroot/repo/epsilon/zeta
655 787c8eb6 2019-07-11 stsp git_commit $testroot/repo -m "committing to zeta on master"
656 787c8eb6 2019-07-11 stsp local master_commit=`git_show_head $testroot/repo`
657 787c8eb6 2019-07-11 stsp
658 787c8eb6 2019-07-11 stsp got checkout $testroot/repo $testroot/wt > /dev/null
659 787c8eb6 2019-07-11 stsp ret="$?"
660 787c8eb6 2019-07-11 stsp if [ "$ret" != "0" ]; then
661 787c8eb6 2019-07-11 stsp test_done "$testroot" "$ret"
662 787c8eb6 2019-07-11 stsp return 1
663 787c8eb6 2019-07-11 stsp fi
664 787c8eb6 2019-07-11 stsp
665 787c8eb6 2019-07-11 stsp (cd $testroot/wt && got rebase newbranch > /dev/null \
666 787c8eb6 2019-07-11 stsp 2> $testroot/stderr)
667 787c8eb6 2019-07-11 stsp
668 787c8eb6 2019-07-11 stsp (cd $testroot/repo && git checkout -q newbranch)
669 787c8eb6 2019-07-11 stsp local new_commit1=`git_show_parent_commit $testroot/repo`
670 787c8eb6 2019-07-11 stsp local new_commit2=`git_show_head $testroot/repo`
671 787c8eb6 2019-07-11 stsp
672 787c8eb6 2019-07-11 stsp echo -n > $testroot/stderr.expected
673 64c6d990 2019-07-11 stsp cmp -s $testroot/stderr.expected $testroot/stderr
674 64c6d990 2019-07-11 stsp ret="$?"
675 64c6d990 2019-07-11 stsp if [ "$ret" != "0" ]; then
676 64c6d990 2019-07-11 stsp diff -u $testroot/stderr.expected $testroot/stderr
677 787c8eb6 2019-07-11 stsp test_done "$testroot" "$ret"
678 787c8eb6 2019-07-11 stsp return 1
679 64c6d990 2019-07-11 stsp fi
680 787c8eb6 2019-07-11 stsp
681 787c8eb6 2019-07-11 stsp (cd $testroot/wt && got log -c newbranch -l2 | grep -v ^date: \
682 787c8eb6 2019-07-11 stsp > $testroot/log)
683 787c8eb6 2019-07-11 stsp sed -i -e "s/$orig_commit1/$new_commit1/" $testroot/log.expected
684 787c8eb6 2019-07-11 stsp sed -i -e "s/$orig_commit2/$new_commit2/" $testroot/log.expected
685 787c8eb6 2019-07-11 stsp cmp -s $testroot/log.expected $testroot/log
686 787c8eb6 2019-07-11 stsp ret="$?"
687 787c8eb6 2019-07-11 stsp if [ "$ret" != "0" ]; then
688 787c8eb6 2019-07-11 stsp diff -u $testroot/log.expected $testroot/log
689 787c8eb6 2019-07-11 stsp fi
690 787c8eb6 2019-07-11 stsp
691 ff0d2220 2019-07-11 stsp test_done "$testroot" "$ret"
692 ff0d2220 2019-07-11 stsp }
693 ff0d2220 2019-07-11 stsp
694 dcf44d04 2019-07-11 stsp run_test test_rebase_basic
695 dcf44d04 2019-07-11 stsp run_test test_rebase_ancestry_check
696 dcf44d04 2019-07-11 stsp run_test test_rebase_continue
697 dcf44d04 2019-07-11 stsp run_test test_rebase_abort
698 ff0d2220 2019-07-11 stsp run_test test_rebase_no_op_change
699 7d5807f4 2019-07-11 stsp run_test test_rebase_in_progress
700 64c6d990 2019-07-11 stsp run_test test_rebase_path_prefix
701 787c8eb6 2019-07-11 stsp run_test test_rebase_preserves_logmsg