3 5aa81393 2020-01-06 stsp # Copyright (c) 2019, 2020 Stefan Sperling <stsp@openbsd.org>
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.
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.
17 818c7501 2019-07-11 stsp . ./common.sh
19 f6cae3ed 2020-09-13 naddy test_rebase_basic() {
20 818c7501 2019-07-11 stsp local testroot=`test_init rebase_basic`
21 e600f124 2021-03-21 stsp local commit0=`git_show_head $testroot/repo`
22 e600f124 2021-03-21 stsp local commit0_author_time=`git_show_author_time $testroot/repo`
24 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q -b newbranch
25 818c7501 2019-07-11 stsp echo "modified delta on branch" > $testroot/repo/gamma/delta
26 818c7501 2019-07-11 stsp git_commit $testroot/repo -m "committing to delta on newbranch"
28 818c7501 2019-07-11 stsp echo "modified alpha on branch" > $testroot/repo/alpha
29 d1e03b8c 2023-10-08 thomas git -C $testroot/repo rm -q beta
30 818c7501 2019-07-11 stsp echo "new file on branch" > $testroot/repo/epsilon/new
31 d1e03b8c 2023-10-08 thomas git -C $testroot/repo add epsilon/new
32 818c7501 2019-07-11 stsp git_commit $testroot/repo -m "committing more changes on newbranch"
34 818c7501 2019-07-11 stsp local orig_commit1=`git_show_parent_commit $testroot/repo`
35 818c7501 2019-07-11 stsp local orig_commit2=`git_show_head $testroot/repo`
36 e600f124 2021-03-21 stsp local orig_author_time2=`git_show_author_time $testroot/repo`
38 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q master
39 818c7501 2019-07-11 stsp echo "modified zeta on master" > $testroot/repo/epsilon/zeta
40 818c7501 2019-07-11 stsp git_commit $testroot/repo -m "committing to zeta on master"
41 818c7501 2019-07-11 stsp local master_commit=`git_show_head $testroot/repo`
43 818c7501 2019-07-11 stsp got checkout $testroot/repo $testroot/wt > /dev/null
45 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
46 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
50 818c7501 2019-07-11 stsp (cd $testroot/wt && got rebase newbranch > $testroot/stdout)
52 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q newbranch
53 818c7501 2019-07-11 stsp local new_commit1=`git_show_parent_commit $testroot/repo`
54 818c7501 2019-07-11 stsp local new_commit2=`git_show_head $testroot/repo`
55 e600f124 2021-03-21 stsp local new_author_time2=`git_show_author_time $testroot/repo`
57 818c7501 2019-07-11 stsp local short_orig_commit1=`trim_obj_id 28 $orig_commit1`
58 818c7501 2019-07-11 stsp local short_orig_commit2=`trim_obj_id 28 $orig_commit2`
59 818c7501 2019-07-11 stsp local short_new_commit1=`trim_obj_id 28 $new_commit1`
60 818c7501 2019-07-11 stsp local short_new_commit2=`trim_obj_id 28 $new_commit2`
62 818c7501 2019-07-11 stsp echo "G gamma/delta" >> $testroot/stdout.expected
63 818c7501 2019-07-11 stsp echo -n "$short_orig_commit1 -> $short_new_commit1" \
64 818c7501 2019-07-11 stsp >> $testroot/stdout.expected
65 818c7501 2019-07-11 stsp echo ": committing to delta on newbranch" >> $testroot/stdout.expected
66 818c7501 2019-07-11 stsp echo "G alpha" >> $testroot/stdout.expected
67 818c7501 2019-07-11 stsp echo "D beta" >> $testroot/stdout.expected
68 818c7501 2019-07-11 stsp echo "A epsilon/new" >> $testroot/stdout.expected
69 818c7501 2019-07-11 stsp echo -n "$short_orig_commit2 -> $short_new_commit2" \
70 818c7501 2019-07-11 stsp >> $testroot/stdout.expected
71 818c7501 2019-07-11 stsp echo ": committing more changes on newbranch" \
72 818c7501 2019-07-11 stsp >> $testroot/stdout.expected
73 818c7501 2019-07-11 stsp echo "Switching work tree to refs/heads/newbranch" \
74 818c7501 2019-07-11 stsp >> $testroot/stdout.expected
76 818c7501 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
78 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
79 818c7501 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
80 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
84 818c7501 2019-07-11 stsp echo "modified delta on branch" > $testroot/content.expected
85 818c7501 2019-07-11 stsp cat $testroot/wt/gamma/delta > $testroot/content
86 818c7501 2019-07-11 stsp cmp -s $testroot/content.expected $testroot/content
88 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
89 818c7501 2019-07-11 stsp diff -u $testroot/content.expected $testroot/content
90 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
94 818c7501 2019-07-11 stsp echo "modified alpha on branch" > $testroot/content.expected
95 818c7501 2019-07-11 stsp cat $testroot/wt/alpha > $testroot/content
96 818c7501 2019-07-11 stsp cmp -s $testroot/content.expected $testroot/content
98 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
99 818c7501 2019-07-11 stsp diff -u $testroot/content.expected $testroot/content
100 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
104 818c7501 2019-07-11 stsp if [ -e $testroot/wt/beta ]; then
105 818c7501 2019-07-11 stsp echo "removed file beta still exists on disk" >&2
106 818c7501 2019-07-11 stsp test_done "$testroot" "1"
110 818c7501 2019-07-11 stsp echo "new file on branch" > $testroot/content.expected
111 818c7501 2019-07-11 stsp cat $testroot/wt/epsilon/new > $testroot/content
112 818c7501 2019-07-11 stsp cmp -s $testroot/content.expected $testroot/content
114 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
115 818c7501 2019-07-11 stsp diff -u $testroot/content.expected $testroot/content
116 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
120 818c7501 2019-07-11 stsp (cd $testroot/wt && got status > $testroot/stdout)
122 818c7501 2019-07-11 stsp echo -n > $testroot/stdout.expected
123 818c7501 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
125 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
126 818c7501 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
127 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
131 818c7501 2019-07-11 stsp (cd $testroot/wt && got log -l3 | grep ^commit > $testroot/stdout)
132 818c7501 2019-07-11 stsp echo "commit $new_commit2 (newbranch)" > $testroot/stdout.expected
133 818c7501 2019-07-11 stsp echo "commit $new_commit1" >> $testroot/stdout.expected
134 818c7501 2019-07-11 stsp echo "commit $master_commit (master)" >> $testroot/stdout.expected
135 818c7501 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
137 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
138 818c7501 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
139 a615e0e7 2020-12-16 stsp test_done "$testroot" "$ret"
143 a615e0e7 2020-12-16 stsp (cd $testroot/wt && got update > $testroot/stdout)
145 a615e0e7 2020-12-16 stsp echo 'Already up-to-date' > $testroot/stdout.expected
146 a615e0e7 2020-12-16 stsp cmp -s $testroot/stdout.expected $testroot/stdout
148 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
149 a615e0e7 2020-12-16 stsp diff -u $testroot/stdout.expected $testroot/stdout
150 e600f124 2021-03-21 stsp test_done "$testroot" "$ret"
154 e600f124 2021-03-21 stsp # We should have a backup of old commits
155 e600f124 2021-03-21 stsp (cd $testroot/repo && got rebase -l > $testroot/stdout)
156 1c72bab5 2023-03-03 thomas d_orig2=`date -u -r $orig_author_time2 +"%a %b %e %X %Y UTC"`
157 c24e2d2e 2024-04-25 thomas.ad d_new2=`date -u -r $new_author_time2 +"%F"`
158 c24e2d2e 2024-04-25 thomas.ad d_0=`date -u -r $commit0_author_time +"%F"`
159 e600f124 2021-03-21 stsp cat > $testroot/stdout.expected <<EOF
160 e600f124 2021-03-21 stsp -----------------------------------------------
161 e600f124 2021-03-21 stsp commit $orig_commit2 (formerly newbranch)
162 e600f124 2021-03-21 stsp from: $GOT_AUTHOR
163 e600f124 2021-03-21 stsp date: $d_orig2
165 e600f124 2021-03-21 stsp committing more changes on newbranch
167 e600f124 2021-03-21 stsp has become commit $new_commit2 (newbranch)
168 e600f124 2021-03-21 stsp $d_new2 $GOT_AUTHOR_11 committing more changes on newbranch
169 e600f124 2021-03-21 stsp history forked at $commit0
170 e600f124 2021-03-21 stsp $d_0 $GOT_AUTHOR_11 adding the test tree
172 e600f124 2021-03-21 stsp cmp -s $testroot/stdout.expected $testroot/stdout
174 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
175 e600f124 2021-03-21 stsp diff -u $testroot/stdout.expected $testroot/stdout
176 9e822917 2021-03-23 stsp test_done "$testroot" "$ret"
180 9e822917 2021-03-23 stsp # Asking for backups of a branch which has none should yield an error
181 9e822917 2021-03-23 stsp (cd $testroot/repo && got rebase -l master \
182 9e822917 2021-03-23 stsp > $testroot/stdout 2> $testroot/stderr)
183 9e822917 2021-03-23 stsp echo -n > $testroot/stdout.expected
184 9e822917 2021-03-23 stsp echo "got: refs/got/backup/rebase/master/: no such reference found" \
185 9e822917 2021-03-23 stsp > $testroot/stderr.expected
186 9e822917 2021-03-23 stsp cmp -s $testroot/stdout.expected $testroot/stdout
188 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
189 9e822917 2021-03-23 stsp diff -u $testroot/stdout.expected $testroot/stdout
190 9e822917 2021-03-23 stsp test_done "$testroot" "$ret"
193 9e822917 2021-03-23 stsp cmp -s $testroot/stderr.expected $testroot/stderr
195 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
196 9e822917 2021-03-23 stsp diff -u $testroot/stderr.expected $testroot/stderr
197 643b85bc 2021-07-16 stsp test_done "$testroot" "$ret"
201 643b85bc 2021-07-16 stsp # Delete all backup refs
202 643b85bc 2021-07-16 stsp (cd $testroot/repo && got rebase -X \
203 643b85bc 2021-07-16 stsp > $testroot/stdout 2> $testroot/stderr)
204 643b85bc 2021-07-16 stsp echo -n "Deleted refs/got/backup/rebase/newbranch/$new_commit2: " \
205 643b85bc 2021-07-16 stsp > $testroot/stdout.expected
206 643b85bc 2021-07-16 stsp echo "$orig_commit2" >> $testroot/stdout.expected
207 643b85bc 2021-07-16 stsp echo -n > $testroot/stderr.expected
208 643b85bc 2021-07-16 stsp cmp -s $testroot/stdout.expected $testroot/stdout
210 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
211 643b85bc 2021-07-16 stsp diff -u $testroot/stdout.expected $testroot/stdout
212 643b85bc 2021-07-16 stsp test_done "$testroot" "$ret"
215 643b85bc 2021-07-16 stsp cmp -s $testroot/stderr.expected $testroot/stderr
217 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
218 643b85bc 2021-07-16 stsp diff -u $testroot/stderr.expected $testroot/stderr
219 643b85bc 2021-07-16 stsp test_done "$testroot" "$ret"
223 643b85bc 2021-07-16 stsp (cd $testroot/repo && got rebase -l > $testroot/stdout)
224 643b85bc 2021-07-16 stsp echo -n > $testroot/stdout.expected
225 643b85bc 2021-07-16 stsp cmp -s $testroot/stdout.expected $testroot/stdout
227 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
228 643b85bc 2021-07-16 stsp diff -u $testroot/stdout.expected $testroot/stdout
230 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
233 f6cae3ed 2020-09-13 naddy test_rebase_ancestry_check() {
234 818c7501 2019-07-11 stsp local testroot=`test_init rebase_ancestry_check`
236 818c7501 2019-07-11 stsp got checkout $testroot/repo $testroot/wt > /dev/null
238 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
239 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
243 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q -b newbranch
244 818c7501 2019-07-11 stsp echo "modified delta on branch" > $testroot/repo/gamma/delta
245 818c7501 2019-07-11 stsp git_commit $testroot/repo -m "committing to delta on newbranch"
246 82d979c5 2021-11-04 thomas local newbranch_id=`git_show_head $testroot/repo`
248 818c7501 2019-07-11 stsp (cd $testroot/wt && got rebase newbranch > $testroot/stdout \
249 818c7501 2019-07-11 stsp 2> $testroot/stderr)
251 82d979c5 2021-11-04 thomas echo "refs/heads/newbranch is already based on refs/heads/master" \
252 82d979c5 2021-11-04 thomas > $testroot/stdout.expected
253 82d979c5 2021-11-04 thomas echo "Switching work tree from refs/heads/master to refs/heads/newbranch" \
254 82d979c5 2021-11-04 thomas >> $testroot/stdout.expected
255 82d979c5 2021-11-04 thomas echo "U gamma/delta" >> $testroot/stdout.expected
256 82d979c5 2021-11-04 thomas echo "Updated to refs/heads/newbranch: ${newbranch_id}" \
257 82d979c5 2021-11-04 thomas >> $testroot/stdout.expected
258 818c7501 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
260 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
261 818c7501 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
262 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
266 82d979c5 2021-11-04 thomas echo -n > $testroot/stderr.expected
267 818c7501 2019-07-11 stsp cmp -s $testroot/stderr.expected $testroot/stderr
269 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
270 818c7501 2019-07-11 stsp diff -u $testroot/stderr.expected $testroot/stderr
272 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
275 f6cae3ed 2020-09-13 naddy test_rebase_continue() {
276 818c7501 2019-07-11 stsp local testroot=`test_init rebase_continue`
277 f69721c3 2019-10-21 stsp local init_commit=`git_show_head $testroot/repo`
279 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q -b newbranch
280 818c7501 2019-07-11 stsp echo "modified alpha on branch" > $testroot/repo/alpha
281 818c7501 2019-07-11 stsp git_commit $testroot/repo -m "committing to alpha on newbranch"
282 818c7501 2019-07-11 stsp local orig_commit1=`git_show_head $testroot/repo`
283 a0ea4fc0 2020-02-28 stsp local short_orig_commit1=`trim_obj_id 28 $orig_commit1`
285 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q master
286 818c7501 2019-07-11 stsp echo "modified alpha on master" > $testroot/repo/alpha
287 818c7501 2019-07-11 stsp git_commit $testroot/repo -m "committing to alpha on master"
288 818c7501 2019-07-11 stsp local master_commit=`git_show_head $testroot/repo`
290 818c7501 2019-07-11 stsp got checkout $testroot/repo $testroot/wt > /dev/null
292 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
293 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
297 818c7501 2019-07-11 stsp (cd $testroot/wt && got rebase newbranch > $testroot/stdout \
298 818c7501 2019-07-11 stsp 2> $testroot/stderr)
300 818c7501 2019-07-11 stsp echo "C alpha" > $testroot/stdout.expected
301 9627c110 2020-04-18 stsp echo "Files with new merge conflicts: 1" >> $testroot/stdout.expected
302 a0ea4fc0 2020-02-28 stsp echo -n "$short_orig_commit1 -> merge conflict" \
303 a0ea4fc0 2020-02-28 stsp >> $testroot/stdout.expected
304 a0ea4fc0 2020-02-28 stsp echo ": committing to alpha on newbranch" >> $testroot/stdout.expected
305 818c7501 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
307 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
308 818c7501 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
309 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
313 11495e04 2019-07-12 stsp echo "got: conflicts must be resolved before rebasing can continue" \
314 818c7501 2019-07-11 stsp > $testroot/stderr.expected
315 818c7501 2019-07-11 stsp cmp -s $testroot/stderr.expected $testroot/stderr
317 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
318 818c7501 2019-07-11 stsp diff -u $testroot/stderr.expected $testroot/stderr
319 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
323 54d5be07 2021-06-03 stsp echo '<<<<<<<' > $testroot/content.expected
324 54d5be07 2021-06-03 stsp echo "modified alpha on master" >> $testroot/content.expected
325 f69721c3 2019-10-21 stsp echo "||||||| 3-way merge base: commit $init_commit" \
326 f69721c3 2019-10-21 stsp >> $testroot/content.expected
327 d136cfcb 2019-10-12 stsp echo "alpha" >> $testroot/content.expected
328 818c7501 2019-07-11 stsp echo "=======" >> $testroot/content.expected
329 54d5be07 2021-06-03 stsp echo "modified alpha on branch" >> $testroot/content.expected
330 54d5be07 2021-06-03 stsp echo ">>>>>>> merged change: commit $orig_commit1" \
331 54d5be07 2021-06-03 stsp >> $testroot/content.expected
332 818c7501 2019-07-11 stsp cat $testroot/wt/alpha > $testroot/content
333 818c7501 2019-07-11 stsp cmp -s $testroot/content.expected $testroot/content
335 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
336 818c7501 2019-07-11 stsp diff -u $testroot/content.expected $testroot/content
337 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
341 818c7501 2019-07-11 stsp (cd $testroot/wt && got status > $testroot/stdout)
343 cd634f2d 2024-03-30 thomas cat > $testroot/stdout.expected <<EOF
345 cd634f2d 2024-03-30 thomas Work tree is rebasing refs/heads/newbranch onto refs/heads/master
347 818c7501 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
349 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
350 818c7501 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
351 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
355 818c7501 2019-07-11 stsp # resolve the conflict
356 818c7501 2019-07-11 stsp echo "modified alpha on branch and master" > $testroot/wt/alpha
358 f032f1f7 2019-08-04 stsp # test interaction of 'got stage' and rebase -c
359 f032f1f7 2019-08-04 stsp (cd $testroot/wt && got stage alpha > /dev/null)
360 f032f1f7 2019-08-04 stsp (cd $testroot/wt && got rebase -c > $testroot/stdout \
361 f032f1f7 2019-08-04 stsp 2> $testroot/stderr)
363 fc414659 2022-04-16 thomas if [ $ret -eq 0 ]; then
364 f032f1f7 2019-08-04 stsp echo "rebase succeeded unexpectedly" >&2
365 f032f1f7 2019-08-04 stsp test_done "$testroot" "1"
368 f032f1f7 2019-08-04 stsp echo -n "got: work tree contains files with staged changes; " \
369 f032f1f7 2019-08-04 stsp > $testroot/stderr.expected
370 f032f1f7 2019-08-04 stsp echo "these changes must be committed or unstaged first" \
371 f032f1f7 2019-08-04 stsp >> $testroot/stderr.expected
372 f032f1f7 2019-08-04 stsp cmp -s $testroot/stderr.expected $testroot/stderr
374 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
375 f032f1f7 2019-08-04 stsp diff -u $testroot/stderr.expected $testroot/stderr
376 f032f1f7 2019-08-04 stsp test_done "$testroot" "$ret"
380 f032f1f7 2019-08-04 stsp (cd $testroot/wt && got unstage alpha > /dev/null)
381 818c7501 2019-07-11 stsp (cd $testroot/wt && got rebase -c > $testroot/stdout)
383 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q newbranch
384 818c7501 2019-07-11 stsp local new_commit1=`git_show_head $testroot/repo`
385 818c7501 2019-07-11 stsp local short_new_commit1=`trim_obj_id 28 $new_commit1`
387 818c7501 2019-07-11 stsp echo -n "$short_orig_commit1 -> $short_new_commit1" \
388 818c7501 2019-07-11 stsp > $testroot/stdout.expected
389 818c7501 2019-07-11 stsp echo ": committing to alpha on newbranch" >> $testroot/stdout.expected
390 818c7501 2019-07-11 stsp echo "Switching work tree to refs/heads/newbranch" \
391 818c7501 2019-07-11 stsp >> $testroot/stdout.expected
393 818c7501 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
395 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
396 818c7501 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
397 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
402 818c7501 2019-07-11 stsp (cd $testroot/wt && got log -l2 | grep ^commit > $testroot/stdout)
403 818c7501 2019-07-11 stsp echo "commit $new_commit1 (newbranch)" > $testroot/stdout.expected
404 818c7501 2019-07-11 stsp echo "commit $master_commit (master)" >> $testroot/stdout.expected
405 818c7501 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
407 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
408 818c7501 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
410 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
413 f6cae3ed 2020-09-13 naddy test_rebase_abort() {
414 818c7501 2019-07-11 stsp local testroot=`test_init rebase_abort`
416 818c7501 2019-07-11 stsp local init_commit=`git_show_head $testroot/repo`
418 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q -b newbranch
419 25a102ed 2023-04-14 thomas echo "modified beta on branch" > $testroot/repo/beta
420 25a102ed 2023-04-14 thomas git_commit $testroot/repo -m "committing to beta on newbranch"
421 818c7501 2019-07-11 stsp local orig_commit1=`git_show_head $testroot/repo`
422 a0ea4fc0 2020-02-28 stsp local short_orig_commit1=`trim_obj_id 28 $orig_commit1`
424 25a102ed 2023-04-14 thomas echo "modified alpha on branch" > $testroot/repo/alpha
425 8641a332 2023-04-14 thomas echo "new file on branch" > $testroot/repo/epsilon/new
426 d1e03b8c 2023-10-08 thomas git -C $testroot/repo add epsilon/new
427 8641a332 2023-04-14 thomas git_commit $testroot/repo \
428 8641a332 2023-04-14 thomas -m "changing alpha and adding new on newbranch"
429 25a102ed 2023-04-14 thomas local orig_commit2=`git_show_head $testroot/repo`
430 25a102ed 2023-04-14 thomas local short_orig_commit2=`trim_obj_id 28 $orig_commit2`
432 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q master
433 818c7501 2019-07-11 stsp echo "modified alpha on master" > $testroot/repo/alpha
434 818c7501 2019-07-11 stsp git_commit $testroot/repo -m "committing to alpha on master"
435 818c7501 2019-07-11 stsp local master_commit=`git_show_head $testroot/repo`
437 818c7501 2019-07-11 stsp got checkout $testroot/repo $testroot/wt > /dev/null
439 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
440 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
444 d52bac28 2021-10-08 thomas # unrelated unversioned file in work tree
445 d52bac28 2021-10-08 thomas touch $testroot/wt/unversioned-file
447 818c7501 2019-07-11 stsp (cd $testroot/wt && got rebase newbranch > $testroot/stdout \
448 818c7501 2019-07-11 stsp 2> $testroot/stderr)
450 25a102ed 2023-04-14 thomas new_commit1=$(cd $testroot/wt && got info beta | \
451 25a102ed 2023-04-14 thomas grep '^based on commit:' | cut -d' ' -f4)
452 25a102ed 2023-04-14 thomas local short_new_commit1=`trim_obj_id 28 $new_commit1`
454 25a102ed 2023-04-14 thomas echo "G beta" > $testroot/stdout.expected
455 25a102ed 2023-04-14 thomas echo -n "$short_orig_commit1 -> $short_new_commit1" \
456 25a102ed 2023-04-14 thomas >> $testroot/stdout.expected
457 25a102ed 2023-04-14 thomas echo ": committing to beta on newbranch" >> $testroot/stdout.expected
458 25a102ed 2023-04-14 thomas echo "C alpha" >> $testroot/stdout.expected
459 8641a332 2023-04-14 thomas echo "A epsilon/new" >> $testroot/stdout.expected
460 9627c110 2020-04-18 stsp echo "Files with new merge conflicts: 1" >> $testroot/stdout.expected
461 25a102ed 2023-04-14 thomas echo -n "$short_orig_commit2 -> merge conflict" \
462 a0ea4fc0 2020-02-28 stsp >> $testroot/stdout.expected
463 8641a332 2023-04-14 thomas echo ": changing alpha and adding new on newbranch" \
464 8641a332 2023-04-14 thomas >> $testroot/stdout.expected
465 818c7501 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
467 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
468 818c7501 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
469 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
473 11495e04 2019-07-12 stsp echo "got: conflicts must be resolved before rebasing can continue" \
474 818c7501 2019-07-11 stsp > $testroot/stderr.expected
475 818c7501 2019-07-11 stsp cmp -s $testroot/stderr.expected $testroot/stderr
477 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
478 818c7501 2019-07-11 stsp diff -u $testroot/stderr.expected $testroot/stderr
479 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
483 54d5be07 2021-06-03 stsp echo '<<<<<<<' > $testroot/content.expected
484 54d5be07 2021-06-03 stsp echo "modified alpha on master" >> $testroot/content.expected
485 25a102ed 2023-04-14 thomas echo "||||||| 3-way merge base: commit $orig_commit1" \
486 f69721c3 2019-10-21 stsp >> $testroot/content.expected
487 d136cfcb 2019-10-12 stsp echo "alpha" >> $testroot/content.expected
488 818c7501 2019-07-11 stsp echo "=======" >> $testroot/content.expected
489 54d5be07 2021-06-03 stsp echo "modified alpha on branch" >> $testroot/content.expected
490 25a102ed 2023-04-14 thomas echo ">>>>>>> merged change: commit $orig_commit2" \
491 54d5be07 2021-06-03 stsp >> $testroot/content.expected
492 818c7501 2019-07-11 stsp cat $testroot/wt/alpha > $testroot/content
493 818c7501 2019-07-11 stsp cmp -s $testroot/content.expected $testroot/content
495 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
496 818c7501 2019-07-11 stsp diff -u $testroot/content.expected $testroot/content
497 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
501 8641a332 2023-04-14 thomas # unrelated file in work tree added during conflict resolution
502 8641a332 2023-04-14 thomas touch $testroot/wt/added-file
503 8641a332 2023-04-14 thomas (cd $testroot/wt && got add added-file > /dev/null)
505 818c7501 2019-07-11 stsp (cd $testroot/wt && got status > $testroot/stdout)
507 cd634f2d 2024-03-30 thomas cat > $testroot/stdout.expected <<EOF
508 cd634f2d 2024-03-30 thomas A added-file
510 cd634f2d 2024-03-30 thomas A epsilon/new
511 cd634f2d 2024-03-30 thomas ? unversioned-file
512 cd634f2d 2024-03-30 thomas Work tree is rebasing refs/heads/newbranch onto refs/heads/master
514 818c7501 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
516 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
517 818c7501 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
518 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
522 818c7501 2019-07-11 stsp (cd $testroot/wt && got rebase -a > $testroot/stdout)
524 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q newbranch
526 818c7501 2019-07-11 stsp echo "Switching work tree to refs/heads/master" \
527 818c7501 2019-07-11 stsp > $testroot/stdout.expected
528 8641a332 2023-04-14 thomas echo 'R added-file' >> $testroot/stdout.expected
529 818c7501 2019-07-11 stsp echo 'R alpha' >> $testroot/stdout.expected
530 8641a332 2023-04-14 thomas echo 'R epsilon/new' >> $testroot/stdout.expected
531 8641a332 2023-04-14 thomas echo 'G added-file' >> $testroot/stdout.expected
532 25a102ed 2023-04-14 thomas echo 'U beta' >> $testroot/stdout.expected
533 818c7501 2019-07-11 stsp echo "Rebase of refs/heads/newbranch aborted" \
534 818c7501 2019-07-11 stsp >> $testroot/stdout.expected
536 818c7501 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
538 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
539 818c7501 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
540 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
544 818c7501 2019-07-11 stsp echo "modified alpha on master" > $testroot/content.expected
545 818c7501 2019-07-11 stsp cat $testroot/wt/alpha > $testroot/content
546 818c7501 2019-07-11 stsp cmp -s $testroot/content.expected $testroot/content
548 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
549 818c7501 2019-07-11 stsp diff -u $testroot/content.expected $testroot/content
550 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
554 818c7501 2019-07-11 stsp (cd $testroot/wt && got log -l3 -c newbranch \
555 818c7501 2019-07-11 stsp | grep ^commit > $testroot/stdout)
556 25a102ed 2023-04-14 thomas echo "commit $orig_commit2 (newbranch)" > $testroot/stdout.expected
557 25a102ed 2023-04-14 thomas echo "commit $orig_commit1" >> $testroot/stdout.expected
558 818c7501 2019-07-11 stsp echo "commit $init_commit" >> $testroot/stdout.expected
559 818c7501 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
561 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
562 818c7501 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
563 25a102ed 2023-04-14 thomas test_done "$testroot" "$ret"
567 25a102ed 2023-04-14 thomas (cd $testroot/wt && got info .| \
568 25a102ed 2023-04-14 thomas grep '^based on commit:' | sort | uniq > $testroot/stdout)
569 25a102ed 2023-04-14 thomas echo "based on commit: $master_commit" > $testroot/stdout.expected
570 25a102ed 2023-04-14 thomas cmp -s $testroot/stdout.expected $testroot/stdout
572 25a102ed 2023-04-14 thomas if [ $ret -ne 0 ]; then
573 25a102ed 2023-04-14 thomas diff -u $testroot/stdout.expected $testroot/stdout
574 25a102ed 2023-04-14 thomas test_done "$testroot" "$ret"
578 25a102ed 2023-04-14 thomas (cd $testroot/wt && got status > $testroot/stdout)
579 8641a332 2023-04-14 thomas echo "? added-file" > $testroot/stdout.expected
580 8641a332 2023-04-14 thomas echo "? unversioned-file" >> $testroot/stdout.expected
581 25a102ed 2023-04-14 thomas cmp -s $testroot/stdout.expected $testroot/stdout
583 25a102ed 2023-04-14 thomas if [ $ret -ne 0 ]; then
584 25a102ed 2023-04-14 thomas diff -u $testroot/stdout.expected $testroot/stdout
585 25a102ed 2023-04-14 thomas test_done "$testroot" "$ret"
589 25a102ed 2023-04-14 thomas cat $testroot/wt/beta > $testroot/content
590 25a102ed 2023-04-14 thomas echo 'beta' > $testroot/content.expected
591 25a102ed 2023-04-14 thomas cmp -s $testroot/content.expected $testroot/content
593 25a102ed 2023-04-14 thomas if [ $ret -ne 0 ]; then
594 25a102ed 2023-04-14 thomas diff -u $testroot/content.expected $testroot/content
595 25a102ed 2023-04-14 thomas test_done "$testroot" "$ret"
599 25a102ed 2023-04-14 thomas # A subsequent update should be a no-op.
600 25a102ed 2023-04-14 thomas (cd $testroot/wt && got update > $testroot/stdout)
601 25a102ed 2023-04-14 thomas echo 'Already up-to-date' > $testroot/stdout.expected
602 25a102ed 2023-04-14 thomas cmp -s $testroot/stdout.expected $testroot/stdout
604 25a102ed 2023-04-14 thomas if [ $ret -ne 0 ]; then
605 25a102ed 2023-04-14 thomas diff -u $testroot/stdout.expected $testroot/stdout
607 818c7501 2019-07-11 stsp test_done "$testroot" "$ret"
610 f6cae3ed 2020-09-13 naddy test_rebase_no_op_change() {
611 ff0d2220 2019-07-11 stsp local testroot=`test_init rebase_no_op_change`
612 ff0d2220 2019-07-11 stsp local init_commit=`git_show_head $testroot/repo`
614 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q -b newbranch
615 ff0d2220 2019-07-11 stsp echo "modified alpha on branch" > $testroot/repo/alpha
616 ff0d2220 2019-07-11 stsp git_commit $testroot/repo -m "committing to alpha on newbranch"
617 ff0d2220 2019-07-11 stsp local orig_commit1=`git_show_head $testroot/repo`
618 a0ea4fc0 2020-02-28 stsp local short_orig_commit1=`trim_obj_id 28 $orig_commit1`
620 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q master
621 ff0d2220 2019-07-11 stsp echo "modified alpha on master" > $testroot/repo/alpha
622 ff0d2220 2019-07-11 stsp git_commit $testroot/repo -m "committing to alpha on master"
623 ff0d2220 2019-07-11 stsp local master_commit=`git_show_head $testroot/repo`
625 ff0d2220 2019-07-11 stsp got checkout $testroot/repo $testroot/wt > /dev/null
627 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
628 ff0d2220 2019-07-11 stsp test_done "$testroot" "$ret"
632 ff0d2220 2019-07-11 stsp (cd $testroot/wt && got rebase newbranch > $testroot/stdout \
633 ff0d2220 2019-07-11 stsp 2> $testroot/stderr)
635 ff0d2220 2019-07-11 stsp echo "C alpha" > $testroot/stdout.expected
636 9627c110 2020-04-18 stsp echo "Files with new merge conflicts: 1" >> $testroot/stdout.expected
637 a0ea4fc0 2020-02-28 stsp echo -n "$short_orig_commit1 -> merge conflict" \
638 a0ea4fc0 2020-02-28 stsp >> $testroot/stdout.expected
639 a0ea4fc0 2020-02-28 stsp echo ": committing to alpha on newbranch" >> $testroot/stdout.expected
640 ff0d2220 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
642 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
643 ff0d2220 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
644 ff0d2220 2019-07-11 stsp test_done "$testroot" "$ret"
648 11495e04 2019-07-12 stsp echo "got: conflicts must be resolved before rebasing can continue" \
649 ff0d2220 2019-07-11 stsp > $testroot/stderr.expected
650 ff0d2220 2019-07-11 stsp cmp -s $testroot/stderr.expected $testroot/stderr
652 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
653 ff0d2220 2019-07-11 stsp diff -u $testroot/stderr.expected $testroot/stderr
654 ff0d2220 2019-07-11 stsp test_done "$testroot" "$ret"
658 54d5be07 2021-06-03 stsp echo '<<<<<<<' > $testroot/content.expected
659 54d5be07 2021-06-03 stsp echo "modified alpha on master" >> $testroot/content.expected
660 f69721c3 2019-10-21 stsp echo "||||||| 3-way merge base: commit $init_commit" \
661 f69721c3 2019-10-21 stsp >> $testroot/content.expected
662 d136cfcb 2019-10-12 stsp echo "alpha" >> $testroot/content.expected
663 ff0d2220 2019-07-11 stsp echo "=======" >> $testroot/content.expected
664 54d5be07 2021-06-03 stsp echo "modified alpha on branch" >> $testroot/content.expected
665 54d5be07 2021-06-03 stsp echo ">>>>>>> merged change: commit $orig_commit1" \
666 54d5be07 2021-06-03 stsp >> $testroot/content.expected
667 ff0d2220 2019-07-11 stsp cat $testroot/wt/alpha > $testroot/content
668 ff0d2220 2019-07-11 stsp cmp -s $testroot/content.expected $testroot/content
670 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
671 ff0d2220 2019-07-11 stsp diff -u $testroot/content.expected $testroot/content
672 ff0d2220 2019-07-11 stsp test_done "$testroot" "$ret"
676 ff0d2220 2019-07-11 stsp (cd $testroot/wt && got status > $testroot/stdout)
678 cd634f2d 2024-03-30 thomas cat > $testroot/stdout.expected <<EOF
680 cd634f2d 2024-03-30 thomas Work tree is rebasing refs/heads/newbranch onto refs/heads/master
682 ff0d2220 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
684 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
685 ff0d2220 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
686 ff0d2220 2019-07-11 stsp test_done "$testroot" "$ret"
690 ff0d2220 2019-07-11 stsp # resolve the conflict
691 ff0d2220 2019-07-11 stsp echo "modified alpha on master" > $testroot/wt/alpha
693 ff0d2220 2019-07-11 stsp (cd $testroot/wt && got rebase -c > $testroot/stdout)
695 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q newbranch
696 ff0d2220 2019-07-11 stsp local new_commit1=`git_show_head $testroot/repo`
698 ff0d2220 2019-07-11 stsp echo -n "$short_orig_commit1 -> no-op change" \
699 ff0d2220 2019-07-11 stsp > $testroot/stdout.expected
700 ff0d2220 2019-07-11 stsp echo ": committing to alpha on newbranch" >> $testroot/stdout.expected
701 ff0d2220 2019-07-11 stsp echo "Switching work tree to refs/heads/newbranch" \
702 ff0d2220 2019-07-11 stsp >> $testroot/stdout.expected
704 ff0d2220 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
706 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
707 ff0d2220 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
708 ff0d2220 2019-07-11 stsp test_done "$testroot" "$ret"
713 ff0d2220 2019-07-11 stsp (cd $testroot/wt && got log -l2 | grep ^commit > $testroot/stdout)
714 ff0d2220 2019-07-11 stsp echo "commit $master_commit (master, newbranch)" \
715 ff0d2220 2019-07-11 stsp > $testroot/stdout.expected
716 ff0d2220 2019-07-11 stsp echo "commit $init_commit" >> $testroot/stdout.expected
717 7d5807f4 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
719 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
720 7d5807f4 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
722 7d5807f4 2019-07-11 stsp test_done "$testroot" "$ret"
725 f6cae3ed 2020-09-13 naddy test_rebase_in_progress() {
726 4ba9c4f6 2019-07-11 stsp local testroot=`test_init rebase_in_progress`
727 7d5807f4 2019-07-11 stsp local init_commit=`git_show_head $testroot/repo`
729 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q -b newbranch
730 7d5807f4 2019-07-11 stsp echo "modified alpha on branch" > $testroot/repo/alpha
731 7d5807f4 2019-07-11 stsp git_commit $testroot/repo -m "committing to alpha on newbranch"
732 7d5807f4 2019-07-11 stsp local orig_commit1=`git_show_head $testroot/repo`
733 a0ea4fc0 2020-02-28 stsp local short_orig_commit1=`trim_obj_id 28 $orig_commit1`
735 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q master
736 7d5807f4 2019-07-11 stsp echo "modified alpha on master" > $testroot/repo/alpha
737 7d5807f4 2019-07-11 stsp git_commit $testroot/repo -m "committing to alpha on master"
738 7d5807f4 2019-07-11 stsp local master_commit=`git_show_head $testroot/repo`
740 7d5807f4 2019-07-11 stsp got checkout $testroot/repo $testroot/wt > /dev/null
742 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
743 7d5807f4 2019-07-11 stsp test_done "$testroot" "$ret"
747 7d5807f4 2019-07-11 stsp (cd $testroot/wt && got rebase newbranch > $testroot/stdout \
748 7d5807f4 2019-07-11 stsp 2> $testroot/stderr)
750 7d5807f4 2019-07-11 stsp echo "C alpha" > $testroot/stdout.expected
751 9627c110 2020-04-18 stsp echo "Files with new merge conflicts: 1" >> $testroot/stdout.expected
752 a0ea4fc0 2020-02-28 stsp echo -n "$short_orig_commit1 -> merge conflict" \
753 a0ea4fc0 2020-02-28 stsp >> $testroot/stdout.expected
754 a0ea4fc0 2020-02-28 stsp echo ": committing to alpha on newbranch" >> $testroot/stdout.expected
755 7d5807f4 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
757 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
758 7d5807f4 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
759 7d5807f4 2019-07-11 stsp test_done "$testroot" "$ret"
763 11495e04 2019-07-12 stsp echo "got: conflicts must be resolved before rebasing can continue" \
764 7d5807f4 2019-07-11 stsp > $testroot/stderr.expected
765 7d5807f4 2019-07-11 stsp cmp -s $testroot/stderr.expected $testroot/stderr
767 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
768 7d5807f4 2019-07-11 stsp diff -u $testroot/stderr.expected $testroot/stderr
769 7d5807f4 2019-07-11 stsp test_done "$testroot" "$ret"
773 54d5be07 2021-06-03 stsp echo '<<<<<<<' > $testroot/content.expected
774 54d5be07 2021-06-03 stsp echo "modified alpha on master" >> $testroot/content.expected
775 f69721c3 2019-10-21 stsp echo "||||||| 3-way merge base: commit $init_commit" \
776 f69721c3 2019-10-21 stsp >> $testroot/content.expected
777 d136cfcb 2019-10-12 stsp echo "alpha" >> $testroot/content.expected
778 7d5807f4 2019-07-11 stsp echo "=======" >> $testroot/content.expected
779 54d5be07 2021-06-03 stsp echo "modified alpha on branch" >> $testroot/content.expected
780 54d5be07 2021-06-03 stsp echo ">>>>>>> merged change: commit $orig_commit1" \
781 54d5be07 2021-06-03 stsp >> $testroot/content.expected
782 7d5807f4 2019-07-11 stsp cat $testroot/wt/alpha > $testroot/content
783 7d5807f4 2019-07-11 stsp cmp -s $testroot/content.expected $testroot/content
785 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
786 7d5807f4 2019-07-11 stsp diff -u $testroot/content.expected $testroot/content
787 7d5807f4 2019-07-11 stsp test_done "$testroot" "$ret"
791 7d5807f4 2019-07-11 stsp (cd $testroot/wt && got status > $testroot/stdout)
793 cd634f2d 2024-03-30 thomas cat > $testroot/stdout.expected <<EOF
795 cd634f2d 2024-03-30 thomas Work tree is rebasing refs/heads/newbranch onto refs/heads/master
797 ff0d2220 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
799 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
800 ff0d2220 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
801 7d5807f4 2019-07-11 stsp test_done "$testroot" "$ret"
805 7d5807f4 2019-07-11 stsp for cmd in update commit; do
806 7d5807f4 2019-07-11 stsp (cd $testroot/wt && got $cmd > $testroot/stdout \
807 7d5807f4 2019-07-11 stsp 2> $testroot/stderr)
809 7d5807f4 2019-07-11 stsp echo -n > $testroot/stdout.expected
810 7d5807f4 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
812 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
813 7d5807f4 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
814 7d5807f4 2019-07-11 stsp test_done "$testroot" "$ret"
818 7d5807f4 2019-07-11 stsp echo -n "got: a rebase operation is in progress in this " \
819 7d5807f4 2019-07-11 stsp > $testroot/stderr.expected
820 7d5807f4 2019-07-11 stsp echo "work tree and must be continued or aborted first" \
821 7d5807f4 2019-07-11 stsp >> $testroot/stderr.expected
822 7d5807f4 2019-07-11 stsp cmp -s $testroot/stderr.expected $testroot/stderr
824 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
825 7d5807f4 2019-07-11 stsp diff -u $testroot/stderr.expected $testroot/stderr
826 7d5807f4 2019-07-11 stsp test_done "$testroot" "$ret"
831 64c6d990 2019-07-11 stsp test_done "$testroot" "$ret"
834 f6cae3ed 2020-09-13 naddy test_rebase_path_prefix() {
835 64c6d990 2019-07-11 stsp local testroot=`test_init rebase_path_prefix`
837 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q -b newbranch
838 64c6d990 2019-07-11 stsp echo "modified delta on branch" > $testroot/repo/gamma/delta
839 64c6d990 2019-07-11 stsp git_commit $testroot/repo -m "committing to delta on newbranch"
841 64c6d990 2019-07-11 stsp local orig_commit1=`git_show_parent_commit $testroot/repo`
842 64c6d990 2019-07-11 stsp local orig_commit2=`git_show_head $testroot/repo`
844 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q master
845 64c6d990 2019-07-11 stsp echo "modified zeta on master" > $testroot/repo/epsilon/zeta
846 64c6d990 2019-07-11 stsp git_commit $testroot/repo -m "committing to zeta on master"
847 64c6d990 2019-07-11 stsp local master_commit=`git_show_head $testroot/repo`
849 64c6d990 2019-07-11 stsp got checkout -p epsilon $testroot/repo $testroot/wt > /dev/null
851 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
852 64c6d990 2019-07-11 stsp test_done "$testroot" "$ret"
856 64c6d990 2019-07-11 stsp (cd $testroot/wt && got rebase newbranch \
857 64c6d990 2019-07-11 stsp > $testroot/stdout 2> $testroot/stderr)
859 64c6d990 2019-07-11 stsp echo -n > $testroot/stdout.expected
860 64c6d990 2019-07-11 stsp cmp -s $testroot/stdout.expected $testroot/stdout
862 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
863 64c6d990 2019-07-11 stsp diff -u $testroot/stdout.expected $testroot/stdout
864 64c6d990 2019-07-11 stsp test_done "$testroot" "$ret"
868 64c6d990 2019-07-11 stsp echo -n "got: cannot rebase branch which contains changes outside " \
869 64c6d990 2019-07-11 stsp > $testroot/stderr.expected
870 64c6d990 2019-07-11 stsp echo "of this work tree's path prefix" >> $testroot/stderr.expected
871 787c8eb6 2019-07-11 stsp cmp -s $testroot/stderr.expected $testroot/stderr
873 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
874 787c8eb6 2019-07-11 stsp diff -u $testroot/stderr.expected $testroot/stderr
875 f4a34a66 2022-04-16 thomas test_done "$testroot" "$ret"
879 f4a34a66 2022-04-16 thomas # rebase should succeed when using a complete work tree
880 f4a34a66 2022-04-16 thomas got checkout $testroot/repo $testroot/wt2 > /dev/null
882 f4a34a66 2022-04-16 thomas if [ $ret -ne 0 ]; then
883 f4a34a66 2022-04-16 thomas test_done "$testroot" "$ret"
887 f4a34a66 2022-04-16 thomas (cd $testroot/wt2 && got rebase newbranch \
888 f4a34a66 2022-04-16 thomas > $testroot/stdout 2> $testroot/stderr)
890 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q newbranch
891 f4a34a66 2022-04-16 thomas local new_commit1=`git_show_parent_commit $testroot/repo`
892 f4a34a66 2022-04-16 thomas local new_commit2=`git_show_head $testroot/repo`
894 f4a34a66 2022-04-16 thomas local short_orig_commit2=`trim_obj_id 28 $orig_commit2`
895 f4a34a66 2022-04-16 thomas local short_new_commit2=`trim_obj_id 28 $new_commit2`
897 f4a34a66 2022-04-16 thomas echo "G gamma/delta" > $testroot/stdout.expected
898 f4a34a66 2022-04-16 thomas echo -n "$short_orig_commit2 -> $short_new_commit2" \
899 f4a34a66 2022-04-16 thomas >> $testroot/stdout.expected
900 f4a34a66 2022-04-16 thomas echo ": committing to delta on newbranch" \
901 f4a34a66 2022-04-16 thomas >> $testroot/stdout.expected
902 f4a34a66 2022-04-16 thomas echo "Switching work tree to refs/heads/newbranch" \
903 f4a34a66 2022-04-16 thomas >> $testroot/stdout.expected
905 f4a34a66 2022-04-16 thomas cmp -s $testroot/stdout.expected $testroot/stdout
907 f4a34a66 2022-04-16 thomas if [ $ret -ne 0 ]; then
908 f4a34a66 2022-04-16 thomas diff -u $testroot/stdout.expected $testroot/stdout
909 f4a34a66 2022-04-16 thomas test_done "$testroot" "$ret"
913 f4a34a66 2022-04-16 thomas # the first work tree should remain usable
914 f4a34a66 2022-04-16 thomas (cd $testroot/wt && got update -b master \
915 f4a34a66 2022-04-16 thomas > $testroot/stdout 2> $testroot/stderr)
917 f4a34a66 2022-04-16 thomas if [ $ret -ne 0 ]; then
918 f4a34a66 2022-04-16 thomas echo "update failed unexpectedly" >&2
919 f4a34a66 2022-04-16 thomas test_done "$testroot" "1"
923 f4a34a66 2022-04-16 thomas echo 'Already up-to-date' > $testroot/stdout.expected
924 f4a34a66 2022-04-16 thomas cmp -s $testroot/stdout.expected $testroot/stdout
926 f4a34a66 2022-04-16 thomas if [ $ret -ne 0 ]; then
927 f4a34a66 2022-04-16 thomas diff -u $testroot/stdout.expected $testroot/stdout
929 787c8eb6 2019-07-11 stsp test_done "$testroot" "$ret"
932 f6cae3ed 2020-09-13 naddy test_rebase_preserves_logmsg() {
933 787c8eb6 2019-07-11 stsp local testroot=`test_init rebase_preserves_logmsg`
935 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q -b newbranch
936 787c8eb6 2019-07-11 stsp echo "modified delta on branch" > $testroot/repo/gamma/delta
937 787c8eb6 2019-07-11 stsp git_commit $testroot/repo -m "modified delta on newbranch"
939 787c8eb6 2019-07-11 stsp echo "modified alpha on branch" > $testroot/repo/alpha
940 787c8eb6 2019-07-11 stsp git_commit $testroot/repo -m "modified alpha on newbranch"
942 787c8eb6 2019-07-11 stsp (cd $testroot/repo && got log -c newbranch -l2 | grep -v ^date: \
943 787c8eb6 2019-07-11 stsp > $testroot/log.expected)
945 787c8eb6 2019-07-11 stsp local orig_commit1=`git_show_parent_commit $testroot/repo`
946 787c8eb6 2019-07-11 stsp local orig_commit2=`git_show_head $testroot/repo`
948 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q master
949 787c8eb6 2019-07-11 stsp echo "modified zeta on master" > $testroot/repo/epsilon/zeta
950 787c8eb6 2019-07-11 stsp git_commit $testroot/repo -m "committing to zeta on master"
951 787c8eb6 2019-07-11 stsp local master_commit=`git_show_head $testroot/repo`
953 787c8eb6 2019-07-11 stsp got checkout $testroot/repo $testroot/wt > /dev/null
955 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
956 787c8eb6 2019-07-11 stsp test_done "$testroot" "$ret"
960 787c8eb6 2019-07-11 stsp (cd $testroot/wt && got rebase newbranch > /dev/null \
961 787c8eb6 2019-07-11 stsp 2> $testroot/stderr)
963 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q newbranch
964 787c8eb6 2019-07-11 stsp local new_commit1=`git_show_parent_commit $testroot/repo`
965 787c8eb6 2019-07-11 stsp local new_commit2=`git_show_head $testroot/repo`
967 787c8eb6 2019-07-11 stsp echo -n > $testroot/stderr.expected
968 64c6d990 2019-07-11 stsp cmp -s $testroot/stderr.expected $testroot/stderr
970 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
971 64c6d990 2019-07-11 stsp diff -u $testroot/stderr.expected $testroot/stderr
972 787c8eb6 2019-07-11 stsp test_done "$testroot" "$ret"
976 787c8eb6 2019-07-11 stsp (cd $testroot/wt && got log -c newbranch -l2 | grep -v ^date: \
977 787c8eb6 2019-07-11 stsp > $testroot/log)
978 ac3cdf31 2023-03-06 thomas ed -s $testroot/log.expected <<-EOF
979 ac3cdf31 2023-03-06 thomas ,s/$orig_commit1/$new_commit1/
980 ac3cdf31 2023-03-06 thomas ,s/$orig_commit2/$new_commit2/
983 787c8eb6 2019-07-11 stsp cmp -s $testroot/log.expected $testroot/log
985 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
986 787c8eb6 2019-07-11 stsp diff -u $testroot/log.expected $testroot/log
989 fc66b545 2019-08-12 stsp test_done "$testroot" "$ret"
992 f6cae3ed 2020-09-13 naddy test_rebase_no_commits_to_rebase() {
993 fc66b545 2019-08-12 stsp local testroot=`test_init rebase_no_commits_to_rebase`
995 fc66b545 2019-08-12 stsp got checkout $testroot/repo $testroot/wt > /dev/null
997 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
998 fc66b545 2019-08-12 stsp test_done "$testroot" "$ret"
1002 0b36e980 2023-01-31 thomas # Create an unrelated branch with 'got import'.
1003 0b36e980 2023-01-31 thomas mkdir -p $testroot/newtree
1004 0b36e980 2023-01-31 thomas echo "new file" > $testroot/newtree/newfile
1005 0b36e980 2023-01-31 thomas got import -m new -b newbranch -r $testroot/repo \
1006 0b36e980 2023-01-31 thomas $testroot/newtree > /dev/null
1008 fc66b545 2019-08-12 stsp echo "modified alpha on master" > $testroot/wt/alpha
1009 fc66b545 2019-08-12 stsp (cd $testroot/wt && got commit -m 'test rebase_no_commits_to_rebase' \
1010 fc66b545 2019-08-12 stsp > /dev/null)
1011 fc66b545 2019-08-12 stsp (cd $testroot/wt && got update > /dev/null)
1013 fc66b545 2019-08-12 stsp (cd $testroot/wt && got rebase newbranch > $testroot/stdout \
1014 fc66b545 2019-08-12 stsp 2> $testroot/stderr)
1016 0b36e980 2023-01-31 thomas echo -n "got: specified branch shares no common ancestry " \
1017 0b36e980 2023-01-31 thomas > $testroot/stderr.expected
1018 0b36e980 2023-01-31 thomas echo "with work tree's branch" >> $testroot/stderr.expected
1019 fc66b545 2019-08-12 stsp cmp -s $testroot/stderr.expected $testroot/stderr
1021 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
1022 fc66b545 2019-08-12 stsp diff -u $testroot/stderr.expected $testroot/stderr
1023 fc66b545 2019-08-12 stsp test_done "$testroot" "$ret"
1027 f4a34a66 2022-04-16 thomas echo -n > $testroot/stdout.expected
1028 fc66b545 2019-08-12 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1030 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
1031 fc66b545 2019-08-12 stsp diff -u $testroot/stdout.expected $testroot/stdout
1032 fc66b545 2019-08-12 stsp test_done "$testroot" "$ret"
1036 fc66b545 2019-08-12 stsp (cd $testroot/wt && got update > $testroot/stdout)
1037 fc66b545 2019-08-12 stsp echo "Already up-to-date" > $testroot/stdout.expected
1038 fc66b545 2019-08-12 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1040 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
1041 fc66b545 2019-08-12 stsp diff -u $testroot/stdout.expected $testroot/stdout
1043 ff0d2220 2019-07-11 stsp test_done "$testroot" "$ret"
1046 f6cae3ed 2020-09-13 naddy test_rebase_forward() {
1047 38b0338b 2019-11-29 stsp local testroot=`test_init rebase_forward`
1048 38b0338b 2019-11-29 stsp local commit0=`git_show_head $testroot/repo`
1050 38b0338b 2019-11-29 stsp got checkout $testroot/repo $testroot/wt > /dev/null
1052 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
1053 38b0338b 2019-11-29 stsp test_done "$testroot" "$ret"
1057 38b0338b 2019-11-29 stsp echo "change alpha 1" > $testroot/wt/alpha
1058 38b0338b 2019-11-29 stsp (cd $testroot/wt && got commit -m 'test rebase_forward' \
1059 38b0338b 2019-11-29 stsp > /dev/null)
1060 38b0338b 2019-11-29 stsp local commit1=`git_show_head $testroot/repo`
1062 38b0338b 2019-11-29 stsp echo "change alpha 2" > $testroot/wt/alpha
1063 38b0338b 2019-11-29 stsp (cd $testroot/wt && got commit -m 'test rebase_forward' \
1064 38b0338b 2019-11-29 stsp > /dev/null)
1065 38b0338b 2019-11-29 stsp local commit2=`git_show_head $testroot/repo`
1067 b6b86fd1 2022-08-30 thomas # Simulate a situation where fast-forward is required.
1068 38b0338b 2019-11-29 stsp # We want to fast-forward master to origin/master:
1069 38b0338b 2019-11-29 stsp # commit 3907e11dceaae2ca7f8db79c2af31794673945ad (origin/master)
1070 38b0338b 2019-11-29 stsp # commit ffcffcd102cf1af6572fbdbb4cf07a0f1fd2d840 (master)
1071 38b0338b 2019-11-29 stsp # commit 87a6a8a2263a15b61c016ff1720b24741d455eb5
1072 993f033b 2021-07-16 stsp (cd $testroot/repo && got ref -d master >/dev/null)
1073 e31abbf2 2020-03-22 stsp (cd $testroot/repo && got ref -c $commit1 refs/heads/master)
1074 e31abbf2 2020-03-22 stsp (cd $testroot/repo && got ref -c $commit2 refs/remotes/origin/master)
1076 38b0338b 2019-11-29 stsp (cd $testroot/wt && got up -b origin/master > /dev/null)
1078 38b0338b 2019-11-29 stsp (cd $testroot/wt && got rebase master \
1079 1996dd72 2022-09-21 thomas > $testroot/stdout 2> $testroot/stderr)
1081 1996dd72 2022-09-21 thomas echo "Forwarding refs/heads/master to commit $commit2" \
1082 1996dd72 2022-09-21 thomas > $testroot/stdout.expected
1083 1996dd72 2022-09-21 thomas echo "Switching work tree to refs/heads/master" \
1084 1996dd72 2022-09-21 thomas >> $testroot/stdout.expected
1085 1996dd72 2022-09-21 thomas cmp -s $testroot/stdout.expected $testroot/stdout
1087 1996dd72 2022-09-21 thomas if [ $ret -ne 0 ]; then
1088 1996dd72 2022-09-21 thomas diff -u $testroot/stdout.expected $testroot/stdout
1089 1996dd72 2022-09-21 thomas test_done "$testroot" "$ret"
1090 1996dd72 2022-09-21 thomas return 1
1093 1996dd72 2022-09-21 thomas # Ensure that rebase operation was completed correctly
1094 1996dd72 2022-09-21 thomas (cd $testroot/wt && got rebase -a \
1095 1996dd72 2022-09-21 thomas > $testroot/stdout 2> $testroot/stderr)
1096 1996dd72 2022-09-21 thomas echo -n "" > $testroot/stdout.expected
1097 1996dd72 2022-09-21 thomas cmp -s $testroot/stdout.expected $testroot/stdout
1099 1996dd72 2022-09-21 thomas if [ $ret -ne 0 ]; then
1100 1996dd72 2022-09-21 thomas diff -u $testroot/stdout.expected $testroot/stdout
1101 1996dd72 2022-09-21 thomas test_done "$testroot" "$ret"
1102 1996dd72 2022-09-21 thomas return 1
1104 1996dd72 2022-09-21 thomas echo "got: rebase operation not in progress" > $testroot/stderr.expected
1105 1996dd72 2022-09-21 thomas cmp -s $testroot/stderr.expected $testroot/stderr
1107 1996dd72 2022-09-21 thomas if [ $ret -ne 0 ]; then
1108 1996dd72 2022-09-21 thomas diff -u $testroot/stderr.expected $testroot/stderr
1109 1996dd72 2022-09-21 thomas test_done "$testroot" "$ret"
1110 1996dd72 2022-09-21 thomas return 1
1113 1996dd72 2022-09-21 thomas (cd $testroot/wt && got branch -n > $testroot/stdout)
1114 1996dd72 2022-09-21 thomas echo "master" > $testroot/stdout.expected
1115 1996dd72 2022-09-21 thomas cmp -s $testroot/stdout.expected $testroot/stdout
1117 1996dd72 2022-09-21 thomas if [ $ret -ne 0 ]; then
1118 1996dd72 2022-09-21 thomas diff -u $testroot/stdout.expected $testroot/stdout
1119 1996dd72 2022-09-21 thomas test_done "$testroot" "$ret"
1120 1996dd72 2022-09-21 thomas return 1
1123 1996dd72 2022-09-21 thomas (cd $testroot/wt && got log -l3 | grep ^commit > $testroot/stdout)
1124 1996dd72 2022-09-21 thomas echo "commit $commit2 (master, origin/master)" > $testroot/stdout.expected
1125 1996dd72 2022-09-21 thomas echo "commit $commit1" >> $testroot/stdout.expected
1126 1996dd72 2022-09-21 thomas echo "commit $commit0" >> $testroot/stdout.expected
1127 1996dd72 2022-09-21 thomas cmp -s $testroot/stdout.expected $testroot/stdout
1129 1996dd72 2022-09-21 thomas if [ $ret -ne 0 ]; then
1130 1996dd72 2022-09-21 thomas diff -u $testroot/stdout.expected $testroot/stdout
1131 1996dd72 2022-09-21 thomas test_done "$testroot" "$ret"
1132 1996dd72 2022-09-21 thomas return 1
1135 1996dd72 2022-09-21 thomas # Forward-only rebase operations should not be backed up
1136 1996dd72 2022-09-21 thomas (cd $testroot/repo && got rebase -l > $testroot/stdout)
1137 1996dd72 2022-09-21 thomas echo -n > $testroot/stdout.expected
1138 1996dd72 2022-09-21 thomas cmp -s $testroot/stdout.expected $testroot/stdout
1140 1996dd72 2022-09-21 thomas if [ $ret -ne 0 ]; then
1141 1996dd72 2022-09-21 thomas diff -u $testroot/stdout.expected $testroot/stdout
1143 1996dd72 2022-09-21 thomas test_done "$testroot" "$ret"
1146 1996dd72 2022-09-21 thomas test_rebase_forward_path_prefix() {
1147 1996dd72 2022-09-21 thomas local testroot=`test_init rebase_forward_path_prefix`
1148 1996dd72 2022-09-21 thomas local commit0=`git_show_head $testroot/repo`
1150 1996dd72 2022-09-21 thomas got checkout $testroot/repo $testroot/wt-full > /dev/null
1152 1996dd72 2022-09-21 thomas if [ $ret -ne 0 ]; then
1153 1996dd72 2022-09-21 thomas test_done "$testroot" "$ret"
1154 1996dd72 2022-09-21 thomas return 1
1157 1996dd72 2022-09-21 thomas echo "change alpha 1" > $testroot/wt-full/alpha
1158 1996dd72 2022-09-21 thomas (cd $testroot/wt-full && got commit -m 'test rebase_forward' \
1159 1996dd72 2022-09-21 thomas > /dev/null)
1160 1996dd72 2022-09-21 thomas local commit1=`git_show_head $testroot/repo`
1162 1996dd72 2022-09-21 thomas echo "change alpha 2" > $testroot/wt-full/alpha
1163 1996dd72 2022-09-21 thomas (cd $testroot/wt-full && got commit -m 'test rebase_forward' \
1164 1996dd72 2022-09-21 thomas > /dev/null)
1165 1996dd72 2022-09-21 thomas local commit2=`git_show_head $testroot/repo`
1167 1996dd72 2022-09-21 thomas # Simulate a situation where fast-forward is required.
1168 1996dd72 2022-09-21 thomas # We want to fast-forward master to origin/master:
1169 1996dd72 2022-09-21 thomas # commit 3907e11dceaae2ca7f8db79c2af31794673945ad (origin/master)
1170 1996dd72 2022-09-21 thomas # commit ffcffcd102cf1af6572fbdbb4cf07a0f1fd2d840 (master)
1171 1996dd72 2022-09-21 thomas # commit 87a6a8a2263a15b61c016ff1720b24741d455eb5
1172 1996dd72 2022-09-21 thomas (cd $testroot/repo && got ref -d master >/dev/null)
1173 1996dd72 2022-09-21 thomas (cd $testroot/repo && got ref -c $commit1 refs/heads/master)
1174 1996dd72 2022-09-21 thomas (cd $testroot/repo && got ref -c $commit2 refs/remotes/origin/master)
1176 1996dd72 2022-09-21 thomas # Work tree which uses a path-prefix and will be used for rebasing
1177 1996dd72 2022-09-21 thomas got checkout -p epsilon -b origin/master $testroot/repo $testroot/wt \
1178 1996dd72 2022-09-21 thomas > /dev/null
1180 1996dd72 2022-09-21 thomas if [ $ret -ne 0 ]; then
1181 1996dd72 2022-09-21 thomas test_done "$testroot" "$ret"
1182 1996dd72 2022-09-21 thomas return 1
1185 4f29e1f1 2022-10-24 thomas (cd $testroot/wt && got rebase master \
1186 38b0338b 2019-11-29 stsp > $testroot/stdout 2> $testroot/stderr)
1188 38b0338b 2019-11-29 stsp echo "Forwarding refs/heads/master to commit $commit2" \
1189 38b0338b 2019-11-29 stsp > $testroot/stdout.expected
1190 38b0338b 2019-11-29 stsp echo "Switching work tree to refs/heads/master" \
1191 38b0338b 2019-11-29 stsp >> $testroot/stdout.expected
1192 38b0338b 2019-11-29 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1194 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
1195 38b0338b 2019-11-29 stsp diff -u $testroot/stdout.expected $testroot/stdout
1196 38b0338b 2019-11-29 stsp test_done "$testroot" "$ret"
1200 38b0338b 2019-11-29 stsp # Ensure that rebase operation was completed correctly
1201 38b0338b 2019-11-29 stsp (cd $testroot/wt && got rebase -a \
1202 38b0338b 2019-11-29 stsp > $testroot/stdout 2> $testroot/stderr)
1203 38b0338b 2019-11-29 stsp echo -n "" > $testroot/stdout.expected
1204 38b0338b 2019-11-29 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1206 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
1207 38b0338b 2019-11-29 stsp diff -u $testroot/stdout.expected $testroot/stdout
1208 38b0338b 2019-11-29 stsp test_done "$testroot" "$ret"
1211 38b0338b 2019-11-29 stsp echo "got: rebase operation not in progress" > $testroot/stderr.expected
1212 38b0338b 2019-11-29 stsp cmp -s $testroot/stderr.expected $testroot/stderr
1214 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
1215 38b0338b 2019-11-29 stsp diff -u $testroot/stderr.expected $testroot/stderr
1216 38b0338b 2019-11-29 stsp test_done "$testroot" "$ret"
1220 da76fce2 2020-02-24 stsp (cd $testroot/wt && got branch -n > $testroot/stdout)
1221 38b0338b 2019-11-29 stsp echo "master" > $testroot/stdout.expected
1222 38b0338b 2019-11-29 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1224 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
1225 38b0338b 2019-11-29 stsp diff -u $testroot/stdout.expected $testroot/stdout
1226 38b0338b 2019-11-29 stsp test_done "$testroot" "$ret"
1230 38b0338b 2019-11-29 stsp (cd $testroot/wt && got log -l3 | grep ^commit > $testroot/stdout)
1231 38b0338b 2019-11-29 stsp echo "commit $commit2 (master, origin/master)" > $testroot/stdout.expected
1232 38b0338b 2019-11-29 stsp echo "commit $commit1" >> $testroot/stdout.expected
1233 38b0338b 2019-11-29 stsp echo "commit $commit0" >> $testroot/stdout.expected
1234 38b0338b 2019-11-29 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1236 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
1237 38b0338b 2019-11-29 stsp diff -u $testroot/stdout.expected $testroot/stdout
1238 e600f124 2021-03-21 stsp test_done "$testroot" "$ret"
1242 e600f124 2021-03-21 stsp # Forward-only rebase operations should not be backed up
1243 e600f124 2021-03-21 stsp (cd $testroot/repo && got rebase -l > $testroot/stdout)
1244 e600f124 2021-03-21 stsp echo -n > $testroot/stdout.expected
1245 e600f124 2021-03-21 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1247 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
1248 e600f124 2021-03-21 stsp diff -u $testroot/stdout.expected $testroot/stdout
1250 38b0338b 2019-11-29 stsp test_done "$testroot" "$ret"
1253 f6cae3ed 2020-09-13 naddy test_rebase_out_of_date() {
1254 e51d7b55 2020-01-04 stsp local testroot=`test_init rebase_out_of_date`
1255 e51d7b55 2020-01-04 stsp local initial_commit=`git_show_head $testroot/repo`
1257 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q -b newbranch
1258 e51d7b55 2020-01-04 stsp echo "modified delta on branch" > $testroot/repo/gamma/delta
1259 e51d7b55 2020-01-04 stsp git_commit $testroot/repo -m "committing to delta on newbranch"
1261 e51d7b55 2020-01-04 stsp echo "modified alpha on branch" > $testroot/repo/alpha
1262 d1e03b8c 2023-10-08 thomas git -C $testroot/repo rm -q beta
1263 e51d7b55 2020-01-04 stsp echo "new file on branch" > $testroot/repo/epsilon/new
1264 d1e03b8c 2023-10-08 thomas git -C $testroot/repo add epsilon/new
1265 e51d7b55 2020-01-04 stsp git_commit $testroot/repo -m "committing more changes on newbranch"
1267 e51d7b55 2020-01-04 stsp local orig_commit1=`git_show_parent_commit $testroot/repo`
1268 e51d7b55 2020-01-04 stsp local orig_commit2=`git_show_head $testroot/repo`
1270 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q master
1271 e51d7b55 2020-01-04 stsp echo "modified zeta on master" > $testroot/repo/epsilon/zeta
1272 e51d7b55 2020-01-04 stsp git_commit $testroot/repo -m "committing to zeta on master"
1273 e51d7b55 2020-01-04 stsp local master_commit1=`git_show_head $testroot/repo`
1275 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q master
1276 e51d7b55 2020-01-04 stsp echo "modified beta on master" > $testroot/repo/beta
1277 e51d7b55 2020-01-04 stsp git_commit $testroot/repo -m "committing to beta on master"
1278 e51d7b55 2020-01-04 stsp local master_commit2=`git_show_head $testroot/repo`
1280 e51d7b55 2020-01-04 stsp got checkout -c $master_commit1 $testroot/repo $testroot/wt \
1281 e51d7b55 2020-01-04 stsp > /dev/null
1283 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
1284 e51d7b55 2020-01-04 stsp test_done "$testroot" "$ret"
1288 e51d7b55 2020-01-04 stsp (cd $testroot/wt && got rebase newbranch > $testroot/stdout \
1289 e51d7b55 2020-01-04 stsp 2> $testroot/stderr)
1291 e51d7b55 2020-01-04 stsp echo -n > $testroot/stdout.expected
1292 e51d7b55 2020-01-04 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1294 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
1295 e51d7b55 2020-01-04 stsp diff -u $testroot/stdout.expected $testroot/stdout
1296 e51d7b55 2020-01-04 stsp test_done "$testroot" "$ret"
1300 e51d7b55 2020-01-04 stsp echo -n "got: work tree must be updated before it can be " \
1301 e51d7b55 2020-01-04 stsp > $testroot/stderr.expected
1302 e51d7b55 2020-01-04 stsp echo "used to rebase a branch" >> $testroot/stderr.expected
1303 e51d7b55 2020-01-04 stsp cmp -s $testroot/stderr.expected $testroot/stderr
1305 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
1306 e51d7b55 2020-01-04 stsp diff -u $testroot/stderr.expected $testroot/stderr
1307 e51d7b55 2020-01-04 stsp test_done "$testroot" "$ret"
1311 e51d7b55 2020-01-04 stsp (cd $testroot/wt && got log -l3 | grep ^commit > $testroot/stdout)
1312 e51d7b55 2020-01-04 stsp echo "commit $master_commit2 (master)" > $testroot/stdout.expected
1313 e51d7b55 2020-01-04 stsp echo "commit $master_commit1" >> $testroot/stdout.expected
1314 e51d7b55 2020-01-04 stsp echo "commit $initial_commit" >> $testroot/stdout.expected
1315 1ae0a341 2020-02-14 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1317 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
1318 1ae0a341 2020-02-14 stsp diff -u $testroot/stdout.expected $testroot/stdout
1320 1ae0a341 2020-02-14 stsp test_done "$testroot" "$ret"
1323 f6cae3ed 2020-09-13 naddy test_rebase_trims_empty_dir() {
1324 1ae0a341 2020-02-14 stsp local testroot=`test_init rebase_trims_empty_dir`
1326 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q -b newbranch
1327 1ae0a341 2020-02-14 stsp echo "modified delta on branch" > $testroot/repo/gamma/delta
1328 1ae0a341 2020-02-14 stsp git_commit $testroot/repo -m "committing to delta on newbranch"
1330 d1e03b8c 2023-10-08 thomas git -C $testroot/repo rm -q epsilon/zeta
1331 1ae0a341 2020-02-14 stsp git_commit $testroot/repo -m "removing zeta on newbranch"
1333 1ae0a341 2020-02-14 stsp local orig_commit1=`git_show_parent_commit $testroot/repo`
1334 1ae0a341 2020-02-14 stsp local orig_commit2=`git_show_head $testroot/repo`
1336 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q master
1337 1ae0a341 2020-02-14 stsp echo "modified alpha on master" > $testroot/repo/alpha
1338 1ae0a341 2020-02-14 stsp git_commit $testroot/repo -m "committing to alpha on master"
1339 1ae0a341 2020-02-14 stsp local master_commit=`git_show_head $testroot/repo`
1341 1ae0a341 2020-02-14 stsp got checkout $testroot/repo $testroot/wt > /dev/null
1343 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
1344 1ae0a341 2020-02-14 stsp test_done "$testroot" "$ret"
1348 1ae0a341 2020-02-14 stsp (cd $testroot/wt && got rebase newbranch > $testroot/stdout)
1350 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q newbranch
1351 1ae0a341 2020-02-14 stsp local new_commit1=`git_show_parent_commit $testroot/repo`
1352 1ae0a341 2020-02-14 stsp local new_commit2=`git_show_head $testroot/repo`
1354 1ae0a341 2020-02-14 stsp local short_orig_commit1=`trim_obj_id 28 $orig_commit1`
1355 1ae0a341 2020-02-14 stsp local short_orig_commit2=`trim_obj_id 28 $orig_commit2`
1356 1ae0a341 2020-02-14 stsp local short_new_commit1=`trim_obj_id 28 $new_commit1`
1357 1ae0a341 2020-02-14 stsp local short_new_commit2=`trim_obj_id 28 $new_commit2`
1359 1ae0a341 2020-02-14 stsp echo "G gamma/delta" >> $testroot/stdout.expected
1360 1ae0a341 2020-02-14 stsp echo -n "$short_orig_commit1 -> $short_new_commit1" \
1361 1ae0a341 2020-02-14 stsp >> $testroot/stdout.expected
1362 1ae0a341 2020-02-14 stsp echo ": committing to delta on newbranch" >> $testroot/stdout.expected
1363 1ae0a341 2020-02-14 stsp echo "D epsilon/zeta" >> $testroot/stdout.expected
1364 1ae0a341 2020-02-14 stsp echo -n "$short_orig_commit2 -> $short_new_commit2" \
1365 1ae0a341 2020-02-14 stsp >> $testroot/stdout.expected
1366 1ae0a341 2020-02-14 stsp echo ": removing zeta on newbranch" \
1367 1ae0a341 2020-02-14 stsp >> $testroot/stdout.expected
1368 1ae0a341 2020-02-14 stsp echo "Switching work tree to refs/heads/newbranch" \
1369 1ae0a341 2020-02-14 stsp >> $testroot/stdout.expected
1371 e51d7b55 2020-01-04 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1373 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
1374 e51d7b55 2020-01-04 stsp diff -u $testroot/stdout.expected $testroot/stdout
1375 1ae0a341 2020-02-14 stsp test_done "$testroot" "$ret"
1379 1ae0a341 2020-02-14 stsp echo "modified delta on branch" > $testroot/content.expected
1380 1ae0a341 2020-02-14 stsp cat $testroot/wt/gamma/delta > $testroot/content
1381 1ae0a341 2020-02-14 stsp cmp -s $testroot/content.expected $testroot/content
1383 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
1384 1ae0a341 2020-02-14 stsp diff -u $testroot/content.expected $testroot/content
1385 1ae0a341 2020-02-14 stsp test_done "$testroot" "$ret"
1389 1ae0a341 2020-02-14 stsp echo "modified alpha on master" > $testroot/content.expected
1390 1ae0a341 2020-02-14 stsp cat $testroot/wt/alpha > $testroot/content
1391 1ae0a341 2020-02-14 stsp cmp -s $testroot/content.expected $testroot/content
1393 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
1394 1ae0a341 2020-02-14 stsp diff -u $testroot/content.expected $testroot/content
1395 1ae0a341 2020-02-14 stsp test_done "$testroot" "$ret"
1399 1ae0a341 2020-02-14 stsp if [ -e $testroot/wt/epsilon ]; then
1400 1ae0a341 2020-02-14 stsp echo "parent of removed zeta still exists on disk" >&2
1401 1ae0a341 2020-02-14 stsp test_done "$testroot" "1"
1405 1ae0a341 2020-02-14 stsp (cd $testroot/wt && got status > $testroot/stdout)
1407 1ae0a341 2020-02-14 stsp echo -n > $testroot/stdout.expected
1408 1ae0a341 2020-02-14 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1410 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
1411 1ae0a341 2020-02-14 stsp diff -u $testroot/stdout.expected $testroot/stdout
1412 1ae0a341 2020-02-14 stsp test_done "$testroot" "$ret"
1416 1ae0a341 2020-02-14 stsp (cd $testroot/wt && got log -l3 | grep ^commit > $testroot/stdout)
1417 1ae0a341 2020-02-14 stsp echo "commit $new_commit2 (newbranch)" > $testroot/stdout.expected
1418 1ae0a341 2020-02-14 stsp echo "commit $new_commit1" >> $testroot/stdout.expected
1419 1ae0a341 2020-02-14 stsp echo "commit $master_commit (master)" >> $testroot/stdout.expected
1420 1ae0a341 2020-02-14 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1422 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
1423 1ae0a341 2020-02-14 stsp diff -u $testroot/stdout.expected $testroot/stdout
1425 e51d7b55 2020-01-04 stsp test_done "$testroot" "$ret"
1428 f6cae3ed 2020-09-13 naddy test_rebase_delete_missing_file() {
1429 ca6da77d 2020-03-22 stsp local testroot=`test_init rebase_delete_missing_file`
1431 ca6da77d 2020-03-22 stsp mkdir -p $testroot/repo/d/f/g
1432 ca6da77d 2020-03-22 stsp echo "new file" > $testroot/repo/d/f/g/new
1433 d1e03b8c 2023-10-08 thomas git -C $testroot/repo add d/f/g/new
1434 ca6da77d 2020-03-22 stsp git_commit $testroot/repo -m "adding a subdir"
1435 ca6da77d 2020-03-22 stsp local commit0=`git_show_head $testroot/repo`
1437 a740a1b3 2020-03-22 stsp got br -r $testroot/repo -c master newbranch
1439 a740a1b3 2020-03-22 stsp got checkout -b newbranch $testroot/repo $testroot/wt > /dev/null
1441 a740a1b3 2020-03-22 stsp echo "modified delta on branch" > $testroot/wt/gamma/delta
1442 a740a1b3 2020-03-22 stsp (cd $testroot/wt && got commit \
1443 a740a1b3 2020-03-22 stsp -m "committing to delta on newbranch" > /dev/null)
1445 a740a1b3 2020-03-22 stsp (cd $testroot/wt && got rm beta d/f/g/new > /dev/null)
1446 a740a1b3 2020-03-22 stsp (cd $testroot/wt && got commit \
1447 a740a1b3 2020-03-22 stsp -m "removing beta and d/f/g/new on newbranch" > /dev/null)
1449 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q newbranch
1450 ca6da77d 2020-03-22 stsp local orig_commit1=`git_show_parent_commit $testroot/repo`
1451 ca6da77d 2020-03-22 stsp local orig_commit2=`git_show_head $testroot/repo`
1453 bb494413 2021-09-28 thomas local short_orig_commit1=`trim_obj_id 28 $orig_commit1`
1454 bb494413 2021-09-28 thomas local short_orig_commit2=`trim_obj_id 28 $orig_commit2`
1456 a740a1b3 2020-03-22 stsp (cd $testroot/wt && got update -b master > /dev/null)
1457 a740a1b3 2020-03-22 stsp (cd $testroot/wt && got rm beta d/f/g/new > /dev/null)
1458 a740a1b3 2020-03-22 stsp (cd $testroot/wt && got commit \
1459 a740a1b3 2020-03-22 stsp -m "removing beta and d/f/g/new on master" > /dev/null)
1461 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q master
1462 ca6da77d 2020-03-22 stsp local master_commit=`git_show_head $testroot/repo`
1464 a740a1b3 2020-03-22 stsp (cd $testroot/wt && got update -b master > /dev/null)
1465 bb494413 2021-09-28 thomas (cd $testroot/wt && got rebase newbranch > $testroot/stdout \
1466 bb494413 2021-09-28 thomas 2> $testroot/stderr)
1468 fc414659 2022-04-16 thomas if [ $ret -eq 0 ]; then
1469 bb494413 2021-09-28 thomas echo "rebase succeeded unexpectedly" >&2
1470 bb494413 2021-09-28 thomas test_done "$testroot" "1"
1471 bb494413 2021-09-28 thomas return 1
1474 bb494413 2021-09-28 thomas local new_commit1=$(cd $testroot/wt && got info | \
1475 bb494413 2021-09-28 thomas grep '^work tree base commit: ' | cut -d: -f2 | tr -d ' ')
1477 ca6da77d 2020-03-22 stsp local short_orig_commit2=`trim_obj_id 28 $orig_commit2`
1478 ca6da77d 2020-03-22 stsp local short_new_commit1=`trim_obj_id 28 $new_commit1`
1480 ca6da77d 2020-03-22 stsp echo "G gamma/delta" >> $testroot/stdout.expected
1481 ca6da77d 2020-03-22 stsp echo -n "$short_orig_commit1 -> $short_new_commit1" \
1482 ca6da77d 2020-03-22 stsp >> $testroot/stdout.expected
1483 ca6da77d 2020-03-22 stsp echo ": committing to delta on newbranch" >> $testroot/stdout.expected
1484 ca6da77d 2020-03-22 stsp echo "! beta" >> $testroot/stdout.expected
1485 ca6da77d 2020-03-22 stsp echo "! d/f/g/new" >> $testroot/stdout.expected
1486 0ef68859 2021-09-28 thomas echo -n "Files which had incoming changes but could not be found " \
1487 0ef68859 2021-09-28 thomas >> $testroot/stdout.expected
1488 0ef68859 2021-09-28 thomas echo "in the work tree: 2" >> $testroot/stdout.expected
1489 bb494413 2021-09-28 thomas cmp -s $testroot/stdout.expected $testroot/stdout
1491 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
1492 bb494413 2021-09-28 thomas diff -u $testroot/stdout.expected $testroot/stdout
1493 bb494413 2021-09-28 thomas test_done "$testroot" "$ret"
1494 bb494413 2021-09-28 thomas return 1
1497 bb494413 2021-09-28 thomas echo -n "got: changes destined for some files were not yet merged " \
1498 bb494413 2021-09-28 thomas > $testroot/stderr.expected
1499 bb494413 2021-09-28 thomas echo -n "and should be merged manually if required before the " \
1500 bb494413 2021-09-28 thomas >> $testroot/stderr.expected
1501 bb494413 2021-09-28 thomas echo "rebase operation is continued" >> $testroot/stderr.expected
1502 bb494413 2021-09-28 thomas cmp -s $testroot/stderr.expected $testroot/stderr
1504 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
1505 bb494413 2021-09-28 thomas diff -u $testroot/stderr.expected $testroot/stderr
1506 bb494413 2021-09-28 thomas test_done "$testroot" "$ret"
1507 bb494413 2021-09-28 thomas return 1
1510 bb494413 2021-09-28 thomas # ignore the missing changes and continue
1511 bb494413 2021-09-28 thomas (cd $testroot/wt && got rebase -c > $testroot/stdout)
1513 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
1514 bb494413 2021-09-28 thomas echo "rebase failed unexpectedly" >&2
1515 bb494413 2021-09-28 thomas test_done "$testroot" "1"
1516 bb494413 2021-09-28 thomas return 1
1518 ca6da77d 2020-03-22 stsp echo -n "$short_orig_commit2 -> no-op change" \
1519 bb494413 2021-09-28 thomas > $testroot/stdout.expected
1520 a740a1b3 2020-03-22 stsp echo ": removing beta and d/f/g/new on newbranch" \
1521 ca6da77d 2020-03-22 stsp >> $testroot/stdout.expected
1522 ca6da77d 2020-03-22 stsp echo "Switching work tree to refs/heads/newbranch" \
1523 ca6da77d 2020-03-22 stsp >> $testroot/stdout.expected
1525 ca6da77d 2020-03-22 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1527 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
1528 ca6da77d 2020-03-22 stsp diff -u $testroot/stdout.expected $testroot/stdout
1529 ca6da77d 2020-03-22 stsp test_done "$testroot" "$ret"
1533 ca6da77d 2020-03-22 stsp echo "modified delta on branch" > $testroot/content.expected
1534 ca6da77d 2020-03-22 stsp cat $testroot/wt/gamma/delta > $testroot/content
1535 ca6da77d 2020-03-22 stsp cmp -s $testroot/content.expected $testroot/content
1537 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
1538 ca6da77d 2020-03-22 stsp diff -u $testroot/content.expected $testroot/content
1539 ca6da77d 2020-03-22 stsp test_done "$testroot" "$ret"
1543 ca6da77d 2020-03-22 stsp if [ -e $testroot/wt/beta ]; then
1544 ca6da77d 2020-03-22 stsp echo "removed file beta still exists on disk" >&2
1545 ca6da77d 2020-03-22 stsp test_done "$testroot" "1"
1549 ca6da77d 2020-03-22 stsp (cd $testroot/wt && got status > $testroot/stdout)
1551 ca6da77d 2020-03-22 stsp echo -n > $testroot/stdout.expected
1552 ca6da77d 2020-03-22 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1554 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
1555 ca6da77d 2020-03-22 stsp diff -u $testroot/stdout.expected $testroot/stdout
1556 ca6da77d 2020-03-22 stsp test_done "$testroot" "$ret"
1560 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q newbranch
1561 bb494413 2021-09-28 thomas local new_commit1=`git_show_head $testroot/repo`
1562 bb494413 2021-09-28 thomas local short_new_commit1=`trim_obj_id 28 $new_commit1`
1564 ca6da77d 2020-03-22 stsp (cd $testroot/wt && got log -l3 | grep ^commit > $testroot/stdout)
1565 ca6da77d 2020-03-22 stsp echo "commit $new_commit1 (newbranch)" > $testroot/stdout.expected
1566 ca6da77d 2020-03-22 stsp echo "commit $master_commit (master)" >> $testroot/stdout.expected
1567 ca6da77d 2020-03-22 stsp echo "commit $commit0" >> $testroot/stdout.expected
1568 70551d57 2020-04-24 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1570 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
1571 70551d57 2020-04-24 stsp diff -u $testroot/stdout.expected $testroot/stdout
1573 70551d57 2020-04-24 stsp test_done "$testroot" "$ret"
1576 f6cae3ed 2020-09-13 naddy test_rebase_rm_add_rm_file() {
1577 70551d57 2020-04-24 stsp local testroot=`test_init rebase_rm_add_rm_file`
1579 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q -b newbranch
1580 d1e03b8c 2023-10-08 thomas git -C $testroot/repo rm -q beta
1581 70551d57 2020-04-24 stsp git_commit $testroot/repo -m "removing beta from newbranch"
1582 70551d57 2020-04-24 stsp local orig_commit1=`git_show_head $testroot/repo`
1584 70551d57 2020-04-24 stsp echo 'restored beta' > $testroot/repo/beta
1585 d1e03b8c 2023-10-08 thomas git -C $testroot/repo add beta
1586 70551d57 2020-04-24 stsp git_commit $testroot/repo -m "restoring beta on newbranch"
1587 70551d57 2020-04-24 stsp local orig_commit2=`git_show_head $testroot/repo`
1589 d1e03b8c 2023-10-08 thomas git -C $testroot/repo rm -q beta
1590 70551d57 2020-04-24 stsp git_commit $testroot/repo -m "removing beta from newbranch again"
1591 70551d57 2020-04-24 stsp local orig_commit3=`git_show_head $testroot/repo`
1593 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q master
1594 70551d57 2020-04-24 stsp echo "modified zeta on master" > $testroot/repo/epsilon/zeta
1595 70551d57 2020-04-24 stsp git_commit $testroot/repo -m "committing to zeta on master"
1596 70551d57 2020-04-24 stsp local master_commit=`git_show_head $testroot/repo`
1598 70551d57 2020-04-24 stsp got checkout $testroot/repo $testroot/wt > /dev/null
1600 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
1601 70551d57 2020-04-24 stsp test_done "$testroot" "$ret"
1605 70551d57 2020-04-24 stsp (cd $testroot/wt && got rebase newbranch > $testroot/stdout)
1607 70551d57 2020-04-24 stsp # this would error out with 'got: file index is corrupt'
1608 70551d57 2020-04-24 stsp (cd $testroot/wt && got status > /dev/null)
1610 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
1611 70551d57 2020-04-24 stsp echo "got status command failed unexpectedly" >&2
1612 70551d57 2020-04-24 stsp test_done "$testroot" "$ret"
1616 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q newbranch
1617 70551d57 2020-04-24 stsp local new_commit3=`git_show_head $testroot/repo`
1618 70551d57 2020-04-24 stsp local new_commit2=`git_show_parent_commit $testroot/repo`
1619 70551d57 2020-04-24 stsp local new_commit1=`git_show_parent_commit $testroot/repo $new_commit2`
1621 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q newbranch
1623 70551d57 2020-04-24 stsp local short_orig_commit1=`trim_obj_id 28 $orig_commit1`
1624 70551d57 2020-04-24 stsp local short_orig_commit2=`trim_obj_id 28 $orig_commit2`
1625 70551d57 2020-04-24 stsp local short_orig_commit3=`trim_obj_id 28 $orig_commit3`
1626 70551d57 2020-04-24 stsp local short_new_commit1=`trim_obj_id 28 $new_commit1`
1627 70551d57 2020-04-24 stsp local short_new_commit2=`trim_obj_id 28 $new_commit2`
1628 70551d57 2020-04-24 stsp local short_new_commit3=`trim_obj_id 28 $new_commit3`
1630 70551d57 2020-04-24 stsp echo "D beta" > $testroot/stdout.expected
1631 70551d57 2020-04-24 stsp echo -n "$short_orig_commit1 -> $short_new_commit1" \
1632 70551d57 2020-04-24 stsp >> $testroot/stdout.expected
1633 70551d57 2020-04-24 stsp echo ": removing beta from newbranch" >> $testroot/stdout.expected
1634 70551d57 2020-04-24 stsp echo "A beta" >> $testroot/stdout.expected
1635 70551d57 2020-04-24 stsp echo -n "$short_orig_commit2 -> $short_new_commit2" \
1636 70551d57 2020-04-24 stsp >> $testroot/stdout.expected
1637 70551d57 2020-04-24 stsp echo ": restoring beta on newbranch" >> $testroot/stdout.expected
1638 70551d57 2020-04-24 stsp echo "D beta" >> $testroot/stdout.expected
1639 70551d57 2020-04-24 stsp echo -n "$short_orig_commit3 -> $short_new_commit3" \
1640 70551d57 2020-04-24 stsp >> $testroot/stdout.expected
1641 70551d57 2020-04-24 stsp echo ": removing beta from newbranch again" >> $testroot/stdout.expected
1642 70551d57 2020-04-24 stsp echo "Switching work tree to refs/heads/newbranch" \
1643 70551d57 2020-04-24 stsp >> $testroot/stdout.expected
1645 ca6da77d 2020-03-22 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1647 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
1648 ca6da77d 2020-03-22 stsp diff -u $testroot/stdout.expected $testroot/stdout
1649 70551d57 2020-04-24 stsp test_done "$testroot" "$ret"
1653 70551d57 2020-04-24 stsp (cd $testroot/wt && got status > $testroot/stdout)
1655 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
1656 70551d57 2020-04-24 stsp echo "got status command failed unexpectedly" >&2
1657 70551d57 2020-04-24 stsp test_done "$testroot" "$ret"
1661 70551d57 2020-04-24 stsp echo -n > $testroot/stdout.expected
1662 70551d57 2020-04-24 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1664 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
1665 70551d57 2020-04-24 stsp diff -u $testroot/stdout.expected $testroot/stdout
1666 70551d57 2020-04-24 stsp test_done "$testroot" "$ret"
1670 70551d57 2020-04-24 stsp (cd $testroot/wt && got log -l4 | grep ^commit > $testroot/stdout)
1671 70551d57 2020-04-24 stsp echo "commit $new_commit3 (newbranch)" > $testroot/stdout.expected
1672 70551d57 2020-04-24 stsp echo "commit $new_commit2" >> $testroot/stdout.expected
1673 70551d57 2020-04-24 stsp echo "commit $new_commit1" >> $testroot/stdout.expected
1674 70551d57 2020-04-24 stsp echo "commit $master_commit (master)" >> $testroot/stdout.expected
1675 70551d57 2020-04-24 stsp cmp -s $testroot/stdout.expected $testroot/stdout
1677 fc414659 2022-04-16 thomas if [ $ret -ne 0 ]; then
1678 70551d57 2020-04-24 stsp diff -u $testroot/stdout.expected $testroot/stdout
1680 ca6da77d 2020-03-22 stsp test_done "$testroot" "$ret"
1683 150d7275 2022-07-22 thomas test_rebase_resets_committer() {
1684 150d7275 2022-07-22 thomas local testroot=`test_init rebase_resets_committer`
1685 150d7275 2022-07-22 thomas local commit0=`git_show_head $testroot/repo`
1686 150d7275 2022-07-22 thomas local commit0_author_time=`git_show_author_time $testroot/repo`
1687 150d7275 2022-07-22 thomas local committer="Flan Luck <flan_luck@openbsd.org>"
1689 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q -b newbranch
1690 150d7275 2022-07-22 thomas echo "modified delta on branch" > $testroot/repo/gamma/delta
1691 150d7275 2022-07-22 thomas git_commit $testroot/repo -m "committing to delta on newbranch"
1693 150d7275 2022-07-22 thomas echo "modified alpha on branch" > $testroot/repo/alpha
1694 150d7275 2022-07-22 thomas git_commit $testroot/repo -m "committing more changes on newbranch"
1696 150d7275 2022-07-22 thomas local orig_commit1=`git_show_parent_commit $testroot/repo`
1697 150d7275 2022-07-22 thomas local orig_commit2=`git_show_head $testroot/repo`
1698 150d7275 2022-07-22 thomas local orig_author_time2=`git_show_author_time $testroot/repo`
1700 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q master
1701 150d7275 2022-07-22 thomas echo "modified zeta on master" > $testroot/repo/epsilon/zeta
1702 150d7275 2022-07-22 thomas git_commit $testroot/repo -m "committing to zeta on master"
1703 150d7275 2022-07-22 thomas local master_commit=`git_show_head $testroot/repo`
1705 150d7275 2022-07-22 thomas got checkout $testroot/repo $testroot/wt > /dev/null
1707 150d7275 2022-07-22 thomas if [ $ret -ne 0 ]; then
1708 150d7275 2022-07-22 thomas test_done "$testroot" "$ret"
1709 150d7275 2022-07-22 thomas return 1
1712 150d7275 2022-07-22 thomas (cd $testroot/wt && env GOT_AUTHOR="$committer" \
1713 150d7275 2022-07-22 thomas got rebase newbranch > $testroot/stdout)
1715 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q newbranch
1716 150d7275 2022-07-22 thomas local new_commit1=`git_show_parent_commit $testroot/repo`
1717 150d7275 2022-07-22 thomas local new_commit2=`git_show_head $testroot/repo`
1718 150d7275 2022-07-22 thomas local new_author_time2=`git_show_author_time $testroot/repo`
1720 150d7275 2022-07-22 thomas local short_orig_commit1=`trim_obj_id 28 $orig_commit1`
1721 150d7275 2022-07-22 thomas local short_orig_commit2=`trim_obj_id 28 $orig_commit2`
1722 150d7275 2022-07-22 thomas local short_new_commit1=`trim_obj_id 28 $new_commit1`
1723 150d7275 2022-07-22 thomas local short_new_commit2=`trim_obj_id 28 $new_commit2`
1725 150d7275 2022-07-22 thomas echo "G gamma/delta" >> $testroot/stdout.expected
1726 150d7275 2022-07-22 thomas echo -n "$short_orig_commit1 -> $short_new_commit1" \
1727 150d7275 2022-07-22 thomas >> $testroot/stdout.expected
1728 150d7275 2022-07-22 thomas echo ": committing to delta on newbranch" >> $testroot/stdout.expected
1729 150d7275 2022-07-22 thomas echo "G alpha" >> $testroot/stdout.expected
1730 150d7275 2022-07-22 thomas echo -n "$short_orig_commit2 -> $short_new_commit2" \
1731 150d7275 2022-07-22 thomas >> $testroot/stdout.expected
1732 150d7275 2022-07-22 thomas echo ": committing more changes on newbranch" \
1733 150d7275 2022-07-22 thomas >> $testroot/stdout.expected
1734 150d7275 2022-07-22 thomas echo "Switching work tree to refs/heads/newbranch" \
1735 150d7275 2022-07-22 thomas >> $testroot/stdout.expected
1737 150d7275 2022-07-22 thomas cmp -s $testroot/stdout.expected $testroot/stdout
1739 150d7275 2022-07-22 thomas if [ $ret -ne 0 ]; then
1740 150d7275 2022-07-22 thomas diff -u $testroot/stdout.expected $testroot/stdout
1741 150d7275 2022-07-22 thomas test_done "$testroot" "$ret"
1742 150d7275 2022-07-22 thomas return 1
1745 150d7275 2022-07-22 thomas # Original commit only had one author
1746 150d7275 2022-07-22 thomas (cd $testroot/repo && got log -l1 -c $orig_commit2 | \
1747 150d7275 2022-07-22 thomas egrep '^(from|via):' > $testroot/stdout)
1748 150d7275 2022-07-22 thomas echo "from: $GOT_AUTHOR" > $testroot/stdout.expected
1749 150d7275 2022-07-22 thomas cmp -s $testroot/stdout.expected $testroot/stdout
1751 150d7275 2022-07-22 thomas if [ $ret -ne 0 ]; then
1752 150d7275 2022-07-22 thomas diff -u $testroot/stdout.expected $testroot/stdout
1753 150d7275 2022-07-22 thomas test_done "$testroot" "$ret"
1754 150d7275 2022-07-22 thomas return 1
1757 150d7275 2022-07-22 thomas # Rebased commit should have new committer name added
1758 150d7275 2022-07-22 thomas (cd $testroot/repo && got log -l1 -c $new_commit2 | \
1759 150d7275 2022-07-22 thomas egrep '^(from|via):' > $testroot/stdout)
1760 150d7275 2022-07-22 thomas echo "from: $GOT_AUTHOR" > $testroot/stdout.expected
1761 150d7275 2022-07-22 thomas echo "via: $committer" >> $testroot/stdout.expected
1763 8db00f97 2022-07-22 thomas cmp -s $testroot/stdout.expected $testroot/stdout
1765 8db00f97 2022-07-22 thomas if [ $ret -ne 0 ]; then
1766 8db00f97 2022-07-22 thomas diff -u $testroot/stdout.expected $testroot/stdout
1768 8db00f97 2022-07-22 thomas test_done "$testroot" "$ret"
1771 8db00f97 2022-07-22 thomas test_rebase_no_author_info() {
1772 8db00f97 2022-07-22 thomas local testroot=`test_init rebase_no_author_info`
1773 8db00f97 2022-07-22 thomas local commit0=`git_show_head $testroot/repo`
1774 8db00f97 2022-07-22 thomas local commit0_author_time=`git_show_author_time $testroot/repo`
1775 8db00f97 2022-07-22 thomas local committer="$GOT_AUTHOR"
1777 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q -b newbranch
1778 8db00f97 2022-07-22 thomas echo "modified delta on branch" > $testroot/repo/gamma/delta
1779 8db00f97 2022-07-22 thomas git_commit $testroot/repo -m "committing to delta on newbranch"
1781 8db00f97 2022-07-22 thomas echo "modified alpha on branch" > $testroot/repo/alpha
1782 8db00f97 2022-07-22 thomas git_commit $testroot/repo -m "committing more changes on newbranch"
1784 8db00f97 2022-07-22 thomas local orig_commit1=`git_show_parent_commit $testroot/repo`
1785 8db00f97 2022-07-22 thomas local orig_commit2=`git_show_head $testroot/repo`
1786 8db00f97 2022-07-22 thomas local orig_author_time2=`git_show_author_time $testroot/repo`
1788 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q master
1789 8db00f97 2022-07-22 thomas echo "modified zeta on master" > $testroot/repo/epsilon/zeta
1790 8db00f97 2022-07-22 thomas git_commit $testroot/repo -m "committing to zeta on master"
1791 8db00f97 2022-07-22 thomas local master_commit=`git_show_head $testroot/repo`
1793 8db00f97 2022-07-22 thomas got checkout $testroot/repo $testroot/wt > /dev/null
1795 8db00f97 2022-07-22 thomas if [ $ret -ne 0 ]; then
1796 8db00f97 2022-07-22 thomas test_done "$testroot" "$ret"
1797 8db00f97 2022-07-22 thomas return 1
1800 95ad1e7d 2022-07-24 thomas # unset in a subshell to avoid affecting our environment
1801 95ad1e7d 2022-07-24 thomas (unset GOT_AUTHOR && cd $testroot/wt && \
1802 95ad1e7d 2022-07-24 thomas got rebase newbranch > $testroot/stdout)
1804 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q newbranch
1805 8db00f97 2022-07-22 thomas local new_commit1=`git_show_parent_commit $testroot/repo`
1806 8db00f97 2022-07-22 thomas local new_commit2=`git_show_head $testroot/repo`
1807 8db00f97 2022-07-22 thomas local new_author_time2=`git_show_author_time $testroot/repo`
1809 8db00f97 2022-07-22 thomas local short_orig_commit1=`trim_obj_id 28 $orig_commit1`
1810 8db00f97 2022-07-22 thomas local short_orig_commit2=`trim_obj_id 28 $orig_commit2`
1811 8db00f97 2022-07-22 thomas local short_new_commit1=`trim_obj_id 28 $new_commit1`
1812 8db00f97 2022-07-22 thomas local short_new_commit2=`trim_obj_id 28 $new_commit2`
1814 8db00f97 2022-07-22 thomas echo "G gamma/delta" >> $testroot/stdout.expected
1815 8db00f97 2022-07-22 thomas echo -n "$short_orig_commit1 -> $short_new_commit1" \
1816 8db00f97 2022-07-22 thomas >> $testroot/stdout.expected
1817 8db00f97 2022-07-22 thomas echo ": committing to delta on newbranch" >> $testroot/stdout.expected
1818 8db00f97 2022-07-22 thomas echo "G alpha" >> $testroot/stdout.expected
1819 8db00f97 2022-07-22 thomas echo -n "$short_orig_commit2 -> $short_new_commit2" \
1820 8db00f97 2022-07-22 thomas >> $testroot/stdout.expected
1821 8db00f97 2022-07-22 thomas echo ": committing more changes on newbranch" \
1822 8db00f97 2022-07-22 thomas >> $testroot/stdout.expected
1823 8db00f97 2022-07-22 thomas echo "Switching work tree to refs/heads/newbranch" \
1824 8db00f97 2022-07-22 thomas >> $testroot/stdout.expected
1826 150d7275 2022-07-22 thomas cmp -s $testroot/stdout.expected $testroot/stdout
1828 150d7275 2022-07-22 thomas if [ $ret -ne 0 ]; then
1829 150d7275 2022-07-22 thomas diff -u $testroot/stdout.expected $testroot/stdout
1830 8db00f97 2022-07-22 thomas test_done "$testroot" "$ret"
1831 8db00f97 2022-07-22 thomas return 1
1834 8db00f97 2022-07-22 thomas # Original commit only had one author
1835 8db00f97 2022-07-22 thomas (cd $testroot/repo && got log -l1 -c $orig_commit2 | \
1836 8db00f97 2022-07-22 thomas egrep '^(from|via):' > $testroot/stdout)
1837 8db00f97 2022-07-22 thomas echo "from: $committer" > $testroot/stdout.expected
1838 8db00f97 2022-07-22 thomas cmp -s $testroot/stdout.expected $testroot/stdout
1840 8db00f97 2022-07-22 thomas if [ $ret -ne 0 ]; then
1841 8db00f97 2022-07-22 thomas diff -u $testroot/stdout.expected $testroot/stdout
1842 8db00f97 2022-07-22 thomas test_done "$testroot" "$ret"
1843 8db00f97 2022-07-22 thomas return 1
1846 8db00f97 2022-07-22 thomas # Author info of rebased commit should match the original
1847 8db00f97 2022-07-22 thomas (cd $testroot/repo && got log -l1 -c $new_commit2 | \
1848 8db00f97 2022-07-22 thomas egrep '^(from|via):' > $testroot/stdout)
1849 8db00f97 2022-07-22 thomas echo "from: $committer" > $testroot/stdout.expected
1851 8db00f97 2022-07-22 thomas cmp -s $testroot/stdout.expected $testroot/stdout
1853 8db00f97 2022-07-22 thomas if [ $ret -ne 0 ]; then
1854 8db00f97 2022-07-22 thomas diff -u $testroot/stdout.expected $testroot/stdout
1856 8dbcf388 2022-09-04 thomas test_done "$testroot" "$ret"
1859 8dbcf388 2022-09-04 thomas test_rebase_nonbranch() {
1860 8dbcf388 2022-09-04 thomas local testroot=`test_init rebase_nonbranch`
1862 8dbcf388 2022-09-04 thomas got ref -r $testroot/repo -c refs/heads/master \
1863 8dbcf388 2022-09-04 thomas refs/remotes/origin/master >/dev/null
1865 8dbcf388 2022-09-04 thomas got checkout -b master $testroot/repo $testroot/wt >/dev/null
1867 8dbcf388 2022-09-04 thomas (cd $testroot/wt && got rebase origin/master > $testroot/stdout \
1868 8dbcf388 2022-09-04 thomas 2> $testroot/stderr)
1870 8dbcf388 2022-09-04 thomas if [ $ret -eq 0 ]; then
1871 8dbcf388 2022-09-04 thomas echo "rebase succeeded unexpectedly" >&2
1872 8dbcf388 2022-09-04 thomas test_done "$testroot" "1"
1873 8dbcf388 2022-09-04 thomas return 1
1875 8dbcf388 2022-09-04 thomas echo -n "got: will not rebase a branch which lives outside the " \
1876 8dbcf388 2022-09-04 thomas > $testroot/stderr.expected
1877 8dbcf388 2022-09-04 thomas echo '"refs/heads/" reference namespace' >> $testroot/stderr.expected
1878 8dbcf388 2022-09-04 thomas cmp -s $testroot/stderr.expected $testroot/stderr
1880 8dbcf388 2022-09-04 thomas if [ $ret -ne 0 ]; then
1881 8dbcf388 2022-09-04 thomas diff -u $testroot/stderr.expected $testroot/stderr
1883 150d7275 2022-07-22 thomas test_done "$testroot" "$ret"
1886 a2c162eb 2022-10-30 thomas test_rebase_umask() {
1887 a2c162eb 2022-10-30 thomas local testroot=`test_init rebase_umask`
1888 a2c162eb 2022-10-30 thomas local commit0=`git_show_head "$testroot/repo"`
1890 a2c162eb 2022-10-30 thomas got checkout "$testroot/repo" "$testroot/wt" >/dev/null
1891 a2c162eb 2022-10-30 thomas (cd "$testroot/wt" && got branch newbranch) >/dev/null
1893 a2c162eb 2022-10-30 thomas echo "modified alpha on branch" >$testroot/wt/alpha
1894 a2c162eb 2022-10-30 thomas (cd "$testroot/wt" && got commit -m 'modified alpha on newbranch') \
1895 a2c162eb 2022-10-30 thomas >/dev/null
1897 a2c162eb 2022-10-30 thomas (cd "$testroot/wt" && got update -b master) >/dev/null
1899 a2c162eb 2022-10-30 thomas if [ $ret -ne 0 ]; then
1900 a2c162eb 2022-10-30 thomas echo "got update failed!" >&2
1901 a2c162eb 2022-10-30 thomas test_done "$testroot" $ret
1902 a2c162eb 2022-10-30 thomas return 1
1905 a2c162eb 2022-10-30 thomas echo "modified beta on master" >$testroot/wt/beta
1906 a2c162eb 2022-10-30 thomas (cd "$testroot/wt" && got commit -m 'modified beta on master') \
1907 a2c162eb 2022-10-30 thomas >/dev/null
1908 a2c162eb 2022-10-30 thomas (cd "$testroot/wt" && got update) >/dev/null
1910 a2c162eb 2022-10-30 thomas # using a subshell to avoid clobbering global umask
1911 a2c162eb 2022-10-30 thomas (umask 077 && cd "$testroot/wt" && got rebase newbranch) >/dev/null
1913 a2c162eb 2022-10-30 thomas if [ $ret -ne 0 ]; then
1914 a2c162eb 2022-10-30 thomas echo "got rebase failed" >&2
1915 a2c162eb 2022-10-30 thomas test_done "$testroot" $ret
1916 a2c162eb 2022-10-30 thomas return 1
1919 a2c162eb 2022-10-30 thomas ls -l "$testroot/wt/alpha" | grep -q ^-rw-------
1920 a2c162eb 2022-10-30 thomas if [ $? -ne 0 ]; then
1921 a2c162eb 2022-10-30 thomas echo "alpha is not 0600 after rebase" >&2
1922 a2c162eb 2022-10-30 thomas ls -l "$testroot/wt/alpha" >&2
1923 a2c162eb 2022-10-30 thomas test_done "$testroot" 1
1924 a2c162eb 2022-10-30 thomas return 1
1927 a2c162eb 2022-10-30 thomas test_done "$testroot" 0
1930 60db6857 2023-01-08 thomas test_rebase_out_of_date2() {
1931 60db6857 2023-01-08 thomas local testroot=`test_init rebase_out_of_date2`
1932 60db6857 2023-01-08 thomas local commit0=`git_show_head $testroot/repo`
1933 60db6857 2023-01-08 thomas local commit0_author_time=`git_show_author_time $testroot/repo`
1935 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q -b newbranch
1936 60db6857 2023-01-08 thomas echo "modified delta on branch" > $testroot/repo/gamma/delta
1937 60db6857 2023-01-08 thomas git_commit $testroot/repo -m "committing to delta on newbranch"
1939 60db6857 2023-01-08 thomas local orig_commit1=`git_show_parent_commit $testroot/repo`
1940 60db6857 2023-01-08 thomas local orig_commit2=`git_show_head $testroot/repo`
1941 60db6857 2023-01-08 thomas local orig_author_time2=`git_show_author_time $testroot/repo`
1943 d1e03b8c 2023-10-08 thomas git -C $testroot/repo checkout -q master
1944 60db6857 2023-01-08 thomas echo "modified zeta on master" > $testroot/repo/epsilon/zeta
1945 60db6857 2023-01-08 thomas git_commit $testroot/repo -m "committing to zeta on master"
1946 60db6857 2023-01-08 thomas local master_commit=`git_show_head $testroot/repo`
1948 60db6857 2023-01-08 thomas got checkout $testroot/repo $testroot/wt > /dev/null
1950 60db6857 2023-01-08 thomas if [ $ret -ne 0 ]; then
1951 60db6857 2023-01-08 thomas test_done "$testroot" "$ret"
1952 60db6857 2023-01-08 thomas return 1
1955 60db6857 2023-01-08 thomas # Backdate the file alpha to an earlier version.
1956 60db6857 2023-01-08 thomas # This sets the work tree's base commit ID back to $commit0,
1957 60db6857 2023-01-08 thomas # which is out-of-date with respect to the master branch.
1958 60db6857 2023-01-08 thomas (cd $testroot/wt && got update -c $commit0 alpha > /dev/null)
1960 60db6857 2023-01-08 thomas # Rebase into an out-of-date work tree should be refused.
1961 60db6857 2023-01-08 thomas (cd $testroot/wt && got rebase newbranch > $testroot/stdout \
1962 60db6857 2023-01-08 thomas 2> $testroot/stderr)
1964 60db6857 2023-01-08 thomas if [ $ret -eq 0 ]; then
1965 60db6857 2023-01-08 thomas echo "rebase succeeded unexpectedly" >&2
1966 60db6857 2023-01-08 thomas test_done "$testroot" "1"
1967 60db6857 2023-01-08 thomas return 1
1969 60db6857 2023-01-08 thomas echo -n > $testroot/stdout.expected
1970 60db6857 2023-01-08 thomas echo -n "got: work tree must be updated before it can be used to " \
1971 60db6857 2023-01-08 thomas > $testroot/stderr.expected
1972 60db6857 2023-01-08 thomas echo "rebase a branch" >> $testroot/stderr.expected
1973 60db6857 2023-01-08 thomas cmp -s $testroot/stderr.expected $testroot/stderr
1975 60db6857 2023-01-08 thomas if [ $ret -ne 0 ]; then
1976 60db6857 2023-01-08 thomas diff -u $testroot/stderr.expected $testroot/stderr
1978 60db6857 2023-01-08 thomas test_done "$testroot" "$ret"
1981 0b36e980 2023-01-31 thomas test_rebase_one_commit() {
1982 0b36e980 2023-01-31 thomas local testroot=`test_init rebase_one_commit`
1984 0b36e980 2023-01-31 thomas if ! got checkout $testroot/repo $testroot/wt >/dev/null; then
1985 0b36e980 2023-01-31 thomas test_done "$testroot" 1
1986 0b36e980 2023-01-31 thomas return 1
1989 0b36e980 2023-01-31 thomas (cd $testroot/wt && got branch newbranch) >/dev/null
1991 0b36e980 2023-01-31 thomas echo "modified alpha on newbranch" >$testroot/wt/alpha
1992 0b36e980 2023-01-31 thomas (cd $testroot/wt && got commit -m 'edit alpha') >/dev/null
1993 0b36e980 2023-01-31 thomas (cd $testroot/wt && got update) >/dev/null
1994 0b36e980 2023-01-31 thomas local commit=`git_show_branch_head $testroot/repo newbranch`
1996 0b36e980 2023-01-31 thomas echo -n '' > $testroot/stderr.expected
1998 0b36e980 2023-01-31 thomas (cd $testroot/wt && got rebase master >$testroot/stdout \
1999 0b36e980 2023-01-31 thomas 2> $testroot/stderr)
2001 0b36e980 2023-01-31 thomas if [ $ret -ne 0 ]; then
2002 0b36e980 2023-01-31 thomas echo "rebase comand failed unexpectedly" >&2
2003 0b36e980 2023-01-31 thomas diff -u $testroot/stderr.expected $testroot/stderr
2004 0b36e980 2023-01-31 thomas test_done "$testroot" "1"
2005 0b36e980 2023-01-31 thomas return 1
2008 0b36e980 2023-01-31 thomas echo "Forwarding refs/heads/master to commit $commit" \
2009 0b36e980 2023-01-31 thomas >$testroot/stdout.expected
2010 0b36e980 2023-01-31 thomas echo "Switching work tree to refs/heads/master" \
2011 0b36e980 2023-01-31 thomas >> $testroot/stdout.expected
2013 0b36e980 2023-01-31 thomas if ! cmp -s $testroot/stdout.expected $testroot/stdout; then
2014 0b36e980 2023-01-31 thomas diff -u $testroot/stdout.expected $testroot/stdout
2015 0b36e980 2023-01-31 thomas test_done "$testroot" 1
2016 0b36e980 2023-01-31 thomas return 1
2019 0b36e980 2023-01-31 thomas test_done "$testroot" 0
2022 5dbc8c99 2024-03-07 thomas test_rebase_merge_commit() {
2023 5dbc8c99 2024-03-07 thomas local testroot=`test_init rebase_merge_commit`
2024 5dbc8c99 2024-03-07 thomas local commit0=`git_show_branch_head $testroot/repo master`
2026 5dbc8c99 2024-03-07 thomas if ! got checkout $testroot/repo $testroot/wt >/dev/null; then
2027 5dbc8c99 2024-03-07 thomas test_done "$testroot" 1
2028 5dbc8c99 2024-03-07 thomas return 1
2031 5dbc8c99 2024-03-07 thomas echo "modified delta on master" >$testroot/wt/gamma/delta
2032 5dbc8c99 2024-03-07 thomas (cd $testroot/wt && got commit -m 'edit delta') >/dev/null
2033 5dbc8c99 2024-03-07 thomas local commit1=`git_show_branch_head $testroot/repo master`
2035 5dbc8c99 2024-03-07 thomas (cd $testroot/wt && got branch -c $commit0 newbranch1) >/dev/null
2036 5dbc8c99 2024-03-07 thomas echo "modified alpha on newbranch1" >$testroot/wt/alpha
2037 5dbc8c99 2024-03-07 thomas (cd $testroot/wt && got commit -m 'edit alpha') >/dev/null
2038 5dbc8c99 2024-03-07 thomas (cd $testroot/wt && got update) >/dev/null
2039 5dbc8c99 2024-03-07 thomas local commit2=`git_show_branch_head $testroot/repo master`
2041 5dbc8c99 2024-03-07 thomas echo "modified alpha on newbranch1 again" >$testroot/wt/alpha
2042 5dbc8c99 2024-03-07 thomas (cd $testroot/wt && got commit -m 'edit alpha again') >/dev/null
2043 5dbc8c99 2024-03-07 thomas (cd $testroot/wt && got update) >/dev/null
2044 5dbc8c99 2024-03-07 thomas local commit3=`git_show_branch_head $testroot/repo newbranch1`
2046 5dbc8c99 2024-03-07 thomas (cd $testroot/wt && got branch -c $commit0 newbranch2) >/dev/null
2047 5dbc8c99 2024-03-07 thomas echo "modified beta on newbranch2" >$testroot/wt/beta
2048 5dbc8c99 2024-03-07 thomas (cd $testroot/wt && got commit -m 'edit beta') >/dev/null
2049 5dbc8c99 2024-03-07 thomas (cd $testroot/wt && got update) >/dev/null
2050 5dbc8c99 2024-03-07 thomas local commit4=`git_show_branch_head $testroot/repo newbranch2`
2052 5dbc8c99 2024-03-07 thomas echo "modified beta on newbranch2 again" >$testroot/wt/beta
2053 5dbc8c99 2024-03-07 thomas (cd $testroot/wt && got commit -m 'edit beta again') >/dev/null
2054 5dbc8c99 2024-03-07 thomas (cd $testroot/wt && got update) >/dev/null
2055 5dbc8c99 2024-03-07 thomas local commit5=`git_show_branch_head $testroot/repo newbranch2`
2057 5dbc8c99 2024-03-07 thomas echo -n '' > $testroot/stderr.expected
2059 5dbc8c99 2024-03-07 thomas (cd $testroot/wt && got merge newbranch1 >$testroot/stdout \
2060 5dbc8c99 2024-03-07 thomas 2> $testroot/stderr)
2062 5dbc8c99 2024-03-07 thomas if [ $ret -ne 0 ]; then
2063 5dbc8c99 2024-03-07 thomas echo "merge comand failed unexpectedly" >&2
2064 5dbc8c99 2024-03-07 thomas diff -u $testroot/stderr.expected $testroot/stderr
2065 5dbc8c99 2024-03-07 thomas test_done "$testroot" "1"
2066 5dbc8c99 2024-03-07 thomas return 1
2069 5dbc8c99 2024-03-07 thomas local merge_commit=`git_show_branch_head $testroot/repo newbranch2`
2071 5dbc8c99 2024-03-07 thomas echo "G alpha" >> $testroot/stdout.expected
2072 5dbc8c99 2024-03-07 thomas echo -n "Merged refs/heads/newbranch1 into refs/heads/newbranch2: " \
2073 5dbc8c99 2024-03-07 thomas >> $testroot/stdout.expected
2074 5dbc8c99 2024-03-07 thomas echo $merge_commit >> $testroot/stdout.expected
2076 5dbc8c99 2024-03-07 thomas if ! cmp -s $testroot/stdout.expected $testroot/stdout; then
2077 5dbc8c99 2024-03-07 thomas diff -u $testroot/stdout.expected $testroot/stdout
2078 5dbc8c99 2024-03-07 thomas test_done "$testroot" 1
2079 5dbc8c99 2024-03-07 thomas return 1
2082 5dbc8c99 2024-03-07 thomas (cd $testroot/wt && got update -b master) >/dev/null
2083 5dbc8c99 2024-03-07 thomas (cd $testroot/wt && got rebase newbranch2) > $testroot/stdout
2085 5dbc8c99 2024-03-07 thomas local new_commit5=`git_show_parent_commit $testroot/repo newbranch2`
2086 5dbc8c99 2024-03-07 thomas local short_orig_commit5=`trim_obj_id 28 $commit5`
2087 5dbc8c99 2024-03-07 thomas local short_new_commit5=`trim_obj_id 28 $new_commit5`
2089 5dbc8c99 2024-03-07 thomas local new_commit4=`git_show_parent_commit $testroot/repo $new_commit5`
2090 5dbc8c99 2024-03-07 thomas local short_orig_commit4=`trim_obj_id 28 $commit4`
2091 5dbc8c99 2024-03-07 thomas local short_new_commit4=`trim_obj_id 28 $new_commit4`
2093 5dbc8c99 2024-03-07 thomas local new_merge_commit=`git_show_branch_head $testroot/repo newbranch2`
2094 5dbc8c99 2024-03-07 thomas local short_orig_merge_commit=`trim_obj_id 28 $merge_commit`
2095 5dbc8c99 2024-03-07 thomas local short_new_merge_commit=`trim_obj_id 28 $new_merge_commit`
2097 5dbc8c99 2024-03-07 thomas echo "G beta"> $testroot/stdout.expected
2098 5dbc8c99 2024-03-07 thomas echo "$short_orig_commit4 -> $short_new_commit4: edit beta" \
2099 5dbc8c99 2024-03-07 thomas >> $testroot/stdout.expected
2100 5dbc8c99 2024-03-07 thomas echo "G beta" >> $testroot/stdout.expected
2101 5dbc8c99 2024-03-07 thomas echo "$short_orig_commit5 -> $short_new_commit5: edit beta again" \
2102 5dbc8c99 2024-03-07 thomas >> $testroot/stdout.expected
2103 5dbc8c99 2024-03-07 thomas echo "G alpha" >> $testroot/stdout.expected
2104 5dbc8c99 2024-03-07 thomas echo -n "$short_orig_merge_commit -> $short_new_merge_commit: " \
2105 5dbc8c99 2024-03-07 thomas >> $testroot/stdout.expected
2106 5dbc8c99 2024-03-07 thomas echo "merge refs/heads/newbranch1 into refs/head" \
2107 5dbc8c99 2024-03-07 thomas >> $testroot/stdout.expected
2108 5dbc8c99 2024-03-07 thomas echo "Switching work tree to refs/heads/newbranch2" \
2109 fcd37601 2024-03-07 thomas >> $testroot/stdout.expected
2111 fcd37601 2024-03-07 thomas if ! cmp -s $testroot/stdout.expected $testroot/stdout; then
2112 fcd37601 2024-03-07 thomas diff -u $testroot/stdout.expected $testroot/stdout
2113 fcd37601 2024-03-07 thomas test_done "$testroot" 1
2114 fcd37601 2024-03-07 thomas return 1
2117 fcd37601 2024-03-07 thomas test_done "$testroot" 0
2120 fcd37601 2024-03-07 thomas test_rebase_across_merge_commit() {
2121 fcd37601 2024-03-07 thomas local testroot=`test_init rebase_across_merge_commit`
2122 fcd37601 2024-03-07 thomas local commit0=`git_show_branch_head $testroot/repo master`
2124 fcd37601 2024-03-07 thomas if ! got checkout $testroot/repo $testroot/wt >/dev/null; then
2125 fcd37601 2024-03-07 thomas test_done "$testroot" 1
2126 fcd37601 2024-03-07 thomas return 1
2129 fcd37601 2024-03-07 thomas echo "modified delta on master" >$testroot/wt/gamma/delta
2130 fcd37601 2024-03-07 thomas (cd $testroot/wt && got commit -m 'edit delta') >/dev/null
2131 fcd37601 2024-03-07 thomas local commit1=`git_show_branch_head $testroot/repo master`
2133 fcd37601 2024-03-07 thomas (cd $testroot/wt && got branch -c $commit0 newbranch1) >/dev/null
2134 fcd37601 2024-03-07 thomas echo "modified alpha on newbranch1" >$testroot/wt/alpha
2135 fcd37601 2024-03-07 thomas (cd $testroot/wt && got commit -m 'edit alpha') >/dev/null
2136 fcd37601 2024-03-07 thomas (cd $testroot/wt && got update) >/dev/null
2137 fcd37601 2024-03-07 thomas local commit2=`git_show_branch_head $testroot/repo master`
2139 fcd37601 2024-03-07 thomas echo "modified alpha on newbranch1 again" >$testroot/wt/alpha
2140 fcd37601 2024-03-07 thomas (cd $testroot/wt && got commit -m 'edit alpha again') >/dev/null
2141 fcd37601 2024-03-07 thomas (cd $testroot/wt && got update) >/dev/null
2142 fcd37601 2024-03-07 thomas local commit3=`git_show_branch_head $testroot/repo newbranch1`
2144 fcd37601 2024-03-07 thomas (cd $testroot/wt && got branch -c $commit0 newbranch2) >/dev/null
2145 fcd37601 2024-03-07 thomas echo "modified beta on newbranch2" >$testroot/wt/beta
2146 fcd37601 2024-03-07 thomas (cd $testroot/wt && got commit -m 'edit beta') >/dev/null
2147 fcd37601 2024-03-07 thomas (cd $testroot/wt && got update) >/dev/null
2148 fcd37601 2024-03-07 thomas local commit4=`git_show_branch_head $testroot/repo newbranch2`
2150 fcd37601 2024-03-07 thomas echo "modified beta on newbranch2 again" >$testroot/wt/beta
2151 fcd37601 2024-03-07 thomas (cd $testroot/wt && got commit -m 'edit beta again') >/dev/null
2152 fcd37601 2024-03-07 thomas (cd $testroot/wt && got update) >/dev/null
2153 fcd37601 2024-03-07 thomas local commit5=`git_show_branch_head $testroot/repo newbranch2`
2155 fcd37601 2024-03-07 thomas echo -n '' > $testroot/stderr.expected
2157 fcd37601 2024-03-07 thomas (cd $testroot/wt && got merge newbranch1 >$testroot/stdout \
2158 fcd37601 2024-03-07 thomas 2> $testroot/stderr)
2160 fcd37601 2024-03-07 thomas if [ $ret -ne 0 ]; then
2161 fcd37601 2024-03-07 thomas echo "merge comand failed unexpectedly" >&2
2162 fcd37601 2024-03-07 thomas diff -u $testroot/stderr.expected $testroot/stderr
2163 fcd37601 2024-03-07 thomas test_done "$testroot" "1"
2164 fcd37601 2024-03-07 thomas return 1
2167 fcd37601 2024-03-07 thomas local merge_commit=`git_show_branch_head $testroot/repo newbranch2`
2169 fcd37601 2024-03-07 thomas echo "G alpha" >> $testroot/stdout.expected
2170 fcd37601 2024-03-07 thomas echo -n "Merged refs/heads/newbranch1 into refs/heads/newbranch2: " \
2171 5dbc8c99 2024-03-07 thomas >> $testroot/stdout.expected
2172 fcd37601 2024-03-07 thomas echo $merge_commit >> $testroot/stdout.expected
2174 5dbc8c99 2024-03-07 thomas if ! cmp -s $testroot/stdout.expected $testroot/stdout; then
2175 5dbc8c99 2024-03-07 thomas diff -u $testroot/stdout.expected $testroot/stdout
2176 5dbc8c99 2024-03-07 thomas test_done "$testroot" 1
2177 5dbc8c99 2024-03-07 thomas return 1
2180 fcd37601 2024-03-07 thomas (cd $testroot/wt && got rebase master) > $testroot/stdout
2182 fcd37601 2024-03-07 thomas local new_commit1=`git_show_head $testroot/repo`
2183 fcd37601 2024-03-07 thomas local short_orig_commit1=`trim_obj_id 28 $commit1`
2184 fcd37601 2024-03-07 thomas local short_new_commit1=`trim_obj_id 28 $new_commit1`
2186 fcd37601 2024-03-07 thomas echo "G gamma/delta"> $testroot/stdout.expected
2187 fcd37601 2024-03-07 thomas echo "$short_orig_commit1 -> $short_new_commit1: edit delta" \
2188 fcd37601 2024-03-07 thomas >> $testroot/stdout.expected
2189 fcd37601 2024-03-07 thomas echo "Switching work tree to refs/heads/master" \
2190 fcd37601 2024-03-07 thomas >> $testroot/stdout.expected
2192 fcd37601 2024-03-07 thomas if ! cmp -s $testroot/stdout.expected $testroot/stdout; then
2193 fcd37601 2024-03-07 thomas diff -u $testroot/stdout.expected $testroot/stdout
2194 fcd37601 2024-03-07 thomas test_done "$testroot" 1
2195 fcd37601 2024-03-07 thomas return 1
2198 5dbc8c99 2024-03-07 thomas test_done "$testroot" 0
2201 be9db6c2 2024-03-07 thomas test_rebase_merged_history_traversal() {
2202 be9db6c2 2024-03-07 thomas local testroot=`test_init rebase_merged_history_traversal`
2203 be9db6c2 2024-03-07 thomas local commit0=`git_show_branch_head $testroot/repo master`
2205 be9db6c2 2024-03-07 thomas if ! got checkout $testroot/repo $testroot/wt >/dev/null; then
2206 be9db6c2 2024-03-07 thomas test_done "$testroot" 1
2207 be9db6c2 2024-03-07 thomas return 1
2210 be9db6c2 2024-03-07 thomas (cd $testroot/wt && got branch -c $commit0 newbranch1) >/dev/null
2211 be9db6c2 2024-03-07 thomas echo "modified alpha on newbranch1" >$testroot/wt/alpha
2212 be9db6c2 2024-03-07 thomas (cd $testroot/wt && got commit -m 'edit alpha') >/dev/null
2213 be9db6c2 2024-03-07 thomas (cd $testroot/wt && got update) >/dev/null
2214 be9db6c2 2024-03-07 thomas local commit2=`git_show_branch_head $testroot/repo master`
2216 be9db6c2 2024-03-07 thomas echo "modified alpha on newbranch1 again" >$testroot/wt/alpha
2217 be9db6c2 2024-03-07 thomas (cd $testroot/wt && got commit -m 'edit alpha again') >/dev/null
2218 be9db6c2 2024-03-07 thomas (cd $testroot/wt && got update) >/dev/null
2219 be9db6c2 2024-03-07 thomas local commit3=`git_show_branch_head $testroot/repo newbranch1`
2221 be9db6c2 2024-03-07 thomas echo -n '' > $testroot/stderr.expected
2223 be9db6c2 2024-03-07 thomas (cd $testroot/wt && got update -b master) >/dev/null
2224 be9db6c2 2024-03-07 thomas (cd $testroot/wt && got merge -M newbranch1 >$testroot/stdout \
2225 be9db6c2 2024-03-07 thomas 2> $testroot/stderr)
2227 be9db6c2 2024-03-07 thomas if [ $ret -ne 0 ]; then
2228 be9db6c2 2024-03-07 thomas echo "merge command failed unexpectedly" >&2
2229 be9db6c2 2024-03-07 thomas diff -u $testroot/stderr.expected $testroot/stderr
2230 be9db6c2 2024-03-07 thomas test_done "$testroot" "1"
2231 be9db6c2 2024-03-07 thomas return 1
2234 be9db6c2 2024-03-07 thomas local merge_commit=`git_show_head $testroot/repo`
2236 be9db6c2 2024-03-07 thomas echo "G alpha" > $testroot/stdout.expected
2237 be9db6c2 2024-03-07 thomas echo -n "Merged refs/heads/newbranch1 into refs/heads/master: " \
2238 be9db6c2 2024-03-07 thomas >> $testroot/stdout.expected
2239 be9db6c2 2024-03-07 thomas echo $merge_commit >> $testroot/stdout.expected
2240 be9db6c2 2024-03-07 thomas if ! cmp -s $testroot/stdout.expected $testroot/stdout; then
2241 be9db6c2 2024-03-07 thomas diff -u $testroot/stdout.expected $testroot/stdout
2242 be9db6c2 2024-03-07 thomas test_done "$testroot" 1
2243 be9db6c2 2024-03-07 thomas return 1
2246 be9db6c2 2024-03-07 thomas echo "modified delta on master" >$testroot/wt/gamma/delta
2247 be9db6c2 2024-03-07 thomas (cd $testroot/wt && got commit -m 'edit delta') >/dev/null
2248 be9db6c2 2024-03-07 thomas local commit1=`git_show_branch_head $testroot/repo master`
2250 be9db6c2 2024-03-07 thomas (cd $testroot/wt && got branch newbranch2) >/dev/null
2251 807c60e9 2024-03-30 thomas (cd $testroot/wt && got rebase newbranch1) > $testroot/stdout
2253 be9db6c2 2024-03-07 thomas echo "Forwarding refs/heads/newbranch1 to commit $commit1" > \
2254 be9db6c2 2024-03-07 thomas $testroot/stdout.expected
2255 be9db6c2 2024-03-07 thomas echo "Switching work tree to refs/heads/newbranch1" \
2256 be9db6c2 2024-03-07 thomas >> $testroot/stdout.expected
2258 be9db6c2 2024-03-07 thomas if ! cmp -s $testroot/stdout.expected $testroot/stdout; then
2259 807c60e9 2024-03-30 thomas diff -u $testroot/stdout.expected $testroot/stdout
2260 807c60e9 2024-03-30 thomas test_done "$testroot" "1"
2261 807c60e9 2024-03-30 thomas return 1
2264 be9db6c2 2024-03-07 thomas test_done "$testroot" "$ret"
2267 7fb414ae 2020-08-08 stsp test_parseargs "$@"
2268 dcf44d04 2019-07-11 stsp run_test test_rebase_basic
2269 dcf44d04 2019-07-11 stsp run_test test_rebase_ancestry_check
2270 dcf44d04 2019-07-11 stsp run_test test_rebase_continue
2271 dcf44d04 2019-07-11 stsp run_test test_rebase_abort
2272 ff0d2220 2019-07-11 stsp run_test test_rebase_no_op_change
2273 7d5807f4 2019-07-11 stsp run_test test_rebase_in_progress
2274 64c6d990 2019-07-11 stsp run_test test_rebase_path_prefix
2275 787c8eb6 2019-07-11 stsp run_test test_rebase_preserves_logmsg
2276 fc66b545 2019-08-12 stsp run_test test_rebase_no_commits_to_rebase
2277 38b0338b 2019-11-29 stsp run_test test_rebase_forward
2278 1996dd72 2022-09-21 thomas run_test test_rebase_forward_path_prefix
2279 e51d7b55 2020-01-04 stsp run_test test_rebase_out_of_date
2280 1ae0a341 2020-02-14 stsp run_test test_rebase_trims_empty_dir
2281 ca6da77d 2020-03-22 stsp run_test test_rebase_delete_missing_file
2282 70551d57 2020-04-24 stsp run_test test_rebase_rm_add_rm_file
2283 150d7275 2022-07-22 thomas run_test test_rebase_resets_committer
2284 8db00f97 2022-07-22 thomas run_test test_rebase_no_author_info
2285 8dbcf388 2022-09-04 thomas run_test test_rebase_nonbranch
2286 a2c162eb 2022-10-30 thomas run_test test_rebase_umask
2287 60db6857 2023-01-08 thomas run_test test_rebase_out_of_date2
2288 0b36e980 2023-01-31 thomas run_test test_rebase_one_commit
2289 5dbc8c99 2024-03-07 thomas run_test test_rebase_merge_commit
2290 fcd37601 2024-03-07 thomas run_test test_rebase_across_merge_commit
2291 be9db6c2 2024-03-07 thomas run_test test_rebase_merged_history_traversal