##// END OF EJS Templates
tests: show that in-mem rebase falling back loses state...
Martin von Zweigbergk -
r40834:8ff910b2 stable
parent child Browse files
Show More
@@ -1,643 +1,697 b''
1 #require symlink execbit
1 #require symlink execbit
2 $ cat << EOF >> $HGRCPATH
2 $ cat << EOF >> $HGRCPATH
3 > [phases]
4 > publish=False
3 > [extensions]
5 > [extensions]
4 > amend=
6 > amend=
5 > rebase=
7 > rebase=
6 > debugdrawdag=$TESTDIR/drawdag.py
8 > debugdrawdag=$TESTDIR/drawdag.py
7 > strip=
9 > strip=
8 > [rebase]
10 > [rebase]
9 > experimental.inmemory=1
11 > experimental.inmemory=1
10 > [diff]
12 > [diff]
11 > git=1
13 > git=1
12 > [alias]
14 > [alias]
13 > tglog = log -G --template "{rev}: {node|short} '{desc}'\n"
15 > tglog = log -G --template "{rev}: {node|short} '{desc}'\n"
14 > EOF
16 > EOF
15
17
16 Rebase a simple DAG:
18 Rebase a simple DAG:
17 $ hg init repo1
19 $ hg init repo1
18 $ cd repo1
20 $ cd repo1
19 $ hg debugdrawdag <<'EOS'
21 $ hg debugdrawdag <<'EOS'
20 > c b
22 > c b
21 > |/
23 > |/
22 > d
24 > d
23 > |
25 > |
24 > a
26 > a
25 > EOS
27 > EOS
26 $ hg up -C a
28 $ hg up -C a
27 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
29 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
28 $ hg tglog
30 $ hg tglog
29 o 3: 814f6bd05178 'c'
31 o 3: 814f6bd05178 'c'
30 |
32 |
31 | o 2: db0e82a16a62 'b'
33 | o 2: db0e82a16a62 'b'
32 |/
34 |/
33 o 1: 02952614a83d 'd'
35 o 1: 02952614a83d 'd'
34 |
36 |
35 @ 0: b173517d0057 'a'
37 @ 0: b173517d0057 'a'
36
38
37 $ hg cat -r 3 c
39 $ hg cat -r 3 c
38 c (no-eol)
40 c (no-eol)
39 $ hg cat -r 2 b
41 $ hg cat -r 2 b
40 b (no-eol)
42 b (no-eol)
41 $ hg rebase --debug -r b -d c | grep rebasing
43 $ hg rebase --debug -r b -d c | grep rebasing
42 rebasing in-memory
44 rebasing in-memory
43 rebasing 2:db0e82a16a62 "b" (b)
45 rebasing 2:db0e82a16a62 "b" (b)
44 $ hg tglog
46 $ hg tglog
45 o 3: ca58782ad1e4 'b'
47 o 3: ca58782ad1e4 'b'
46 |
48 |
47 o 2: 814f6bd05178 'c'
49 o 2: 814f6bd05178 'c'
48 |
50 |
49 o 1: 02952614a83d 'd'
51 o 1: 02952614a83d 'd'
50 |
52 |
51 @ 0: b173517d0057 'a'
53 @ 0: b173517d0057 'a'
52
54
53 $ hg cat -r 3 b
55 $ hg cat -r 3 b
54 b (no-eol)
56 b (no-eol)
55 $ hg cat -r 2 c
57 $ hg cat -r 2 c
56 c (no-eol)
58 c (no-eol)
57
59
58 Case 2:
60 Case 2:
59 $ hg init repo2
61 $ hg init repo2
60 $ cd repo2
62 $ cd repo2
61 $ hg debugdrawdag <<'EOS'
63 $ hg debugdrawdag <<'EOS'
62 > c b
64 > c b
63 > |/
65 > |/
64 > d
66 > d
65 > |
67 > |
66 > a
68 > a
67 > EOS
69 > EOS
68
70
69 Add a symlink and executable file:
71 Add a symlink and executable file:
70 $ hg up -C c
72 $ hg up -C c
71 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
73 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
72 $ ln -s somefile e
74 $ ln -s somefile e
73 $ echo f > f
75 $ echo f > f
74 $ chmod +x f
76 $ chmod +x f
75 $ hg add e f
77 $ hg add e f
76 $ hg amend -q
78 $ hg amend -q
77 $ hg up -Cq a
79 $ hg up -Cq a
78
80
79 Write files to the working copy, and ensure they're still there after the rebase
81 Write files to the working copy, and ensure they're still there after the rebase
80 $ echo "abc" > a
82 $ echo "abc" > a
81 $ ln -s def b
83 $ ln -s def b
82 $ echo "ghi" > c
84 $ echo "ghi" > c
83 $ echo "jkl" > d
85 $ echo "jkl" > d
84 $ echo "mno" > e
86 $ echo "mno" > e
85 $ hg tglog
87 $ hg tglog
86 o 3: f56b71190a8f 'c'
88 o 3: f56b71190a8f 'c'
87 |
89 |
88 | o 2: db0e82a16a62 'b'
90 | o 2: db0e82a16a62 'b'
89 |/
91 |/
90 o 1: 02952614a83d 'd'
92 o 1: 02952614a83d 'd'
91 |
93 |
92 @ 0: b173517d0057 'a'
94 @ 0: b173517d0057 'a'
93
95
94 $ hg cat -r 3 c
96 $ hg cat -r 3 c
95 c (no-eol)
97 c (no-eol)
96 $ hg cat -r 2 b
98 $ hg cat -r 2 b
97 b (no-eol)
99 b (no-eol)
98 $ hg cat -r 3 e
100 $ hg cat -r 3 e
99 somefile (no-eol)
101 somefile (no-eol)
100 $ hg rebase --debug -s b -d a | grep rebasing
102 $ hg rebase --debug -s b -d a | grep rebasing
101 rebasing in-memory
103 rebasing in-memory
102 rebasing 2:db0e82a16a62 "b" (b)
104 rebasing 2:db0e82a16a62 "b" (b)
103 $ hg tglog
105 $ hg tglog
104 o 3: fc055c3b4d33 'b'
106 o 3: fc055c3b4d33 'b'
105 |
107 |
106 | o 2: f56b71190a8f 'c'
108 | o 2: f56b71190a8f 'c'
107 | |
109 | |
108 | o 1: 02952614a83d 'd'
110 | o 1: 02952614a83d 'd'
109 |/
111 |/
110 @ 0: b173517d0057 'a'
112 @ 0: b173517d0057 'a'
111
113
112 $ hg cat -r 2 c
114 $ hg cat -r 2 c
113 c (no-eol)
115 c (no-eol)
114 $ hg cat -r 3 b
116 $ hg cat -r 3 b
115 b (no-eol)
117 b (no-eol)
116 $ hg rebase --debug -s 1 -d 3 | grep rebasing
118 $ hg rebase --debug -s 1 -d 3 | grep rebasing
117 rebasing in-memory
119 rebasing in-memory
118 rebasing 1:02952614a83d "d" (d)
120 rebasing 1:02952614a83d "d" (d)
119 rebasing 2:f56b71190a8f "c"
121 rebasing 2:f56b71190a8f "c"
120 $ hg tglog
122 $ hg tglog
121 o 3: 753feb6fd12a 'c'
123 o 3: 753feb6fd12a 'c'
122 |
124 |
123 o 2: 09c044d2cb43 'd'
125 o 2: 09c044d2cb43 'd'
124 |
126 |
125 o 1: fc055c3b4d33 'b'
127 o 1: fc055c3b4d33 'b'
126 |
128 |
127 @ 0: b173517d0057 'a'
129 @ 0: b173517d0057 'a'
128
130
129 Ensure working copy files are still there:
131 Ensure working copy files are still there:
130 $ cat a
132 $ cat a
131 abc
133 abc
132 $ readlink.py b
134 $ readlink.py b
133 b -> def
135 b -> def
134 $ cat e
136 $ cat e
135 mno
137 mno
136
138
137 Ensure symlink and executable files were rebased properly:
139 Ensure symlink and executable files were rebased properly:
138 $ hg up -Cq 3
140 $ hg up -Cq 3
139 $ readlink.py e
141 $ readlink.py e
140 e -> somefile
142 e -> somefile
141 $ ls -l f | cut -c -10
143 $ ls -l f | cut -c -10
142 -rwxr-xr-x
144 -rwxr-xr-x
143
145
144 Rebase the working copy parent
146 Rebase the working copy parent
145 $ hg up -C 3
147 $ hg up -C 3
146 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
148 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
147 $ hg rebase -r 3 -d 0 --debug | grep rebasing
149 $ hg rebase -r 3 -d 0 --debug | grep rebasing
148 rebasing in-memory
150 rebasing in-memory
149 rebasing 3:753feb6fd12a "c" (tip)
151 rebasing 3:753feb6fd12a "c" (tip)
150 $ hg tglog
152 $ hg tglog
151 @ 3: 844a7de3e617 'c'
153 @ 3: 844a7de3e617 'c'
152 |
154 |
153 | o 2: 09c044d2cb43 'd'
155 | o 2: 09c044d2cb43 'd'
154 | |
156 | |
155 | o 1: fc055c3b4d33 'b'
157 | o 1: fc055c3b4d33 'b'
156 |/
158 |/
157 o 0: b173517d0057 'a'
159 o 0: b173517d0057 'a'
158
160
159
161
160 Test reporting of path conflicts
162 Test reporting of path conflicts
161
163
162 $ hg rm a
164 $ hg rm a
163 $ mkdir a
165 $ mkdir a
164 $ touch a/a
166 $ touch a/a
165 $ hg ci -Am "a/a"
167 $ hg ci -Am "a/a"
166 adding a/a
168 adding a/a
167 $ hg tglog
169 $ hg tglog
168 @ 4: daf7dfc139cb 'a/a'
170 @ 4: daf7dfc139cb 'a/a'
169 |
171 |
170 o 3: 844a7de3e617 'c'
172 o 3: 844a7de3e617 'c'
171 |
173 |
172 | o 2: 09c044d2cb43 'd'
174 | o 2: 09c044d2cb43 'd'
173 | |
175 | |
174 | o 1: fc055c3b4d33 'b'
176 | o 1: fc055c3b4d33 'b'
175 |/
177 |/
176 o 0: b173517d0057 'a'
178 o 0: b173517d0057 'a'
177
179
178 $ hg rebase -r . -d 2
180 $ hg rebase -r . -d 2
179 rebasing 4:daf7dfc139cb "a/a" (tip)
181 rebasing 4:daf7dfc139cb "a/a" (tip)
180 saved backup bundle to $TESTTMP/repo1/repo2/.hg/strip-backup/daf7dfc139cb-fdbfcf4f-rebase.hg
182 saved backup bundle to $TESTTMP/repo1/repo2/.hg/strip-backup/daf7dfc139cb-fdbfcf4f-rebase.hg
181
183
182 $ hg tglog
184 $ hg tglog
183 @ 4: c6ad37a4f250 'a/a'
185 @ 4: c6ad37a4f250 'a/a'
184 |
186 |
185 | o 3: 844a7de3e617 'c'
187 | o 3: 844a7de3e617 'c'
186 | |
188 | |
187 o | 2: 09c044d2cb43 'd'
189 o | 2: 09c044d2cb43 'd'
188 | |
190 | |
189 o | 1: fc055c3b4d33 'b'
191 o | 1: fc055c3b4d33 'b'
190 |/
192 |/
191 o 0: b173517d0057 'a'
193 o 0: b173517d0057 'a'
192
194
193 $ echo foo > foo
195 $ echo foo > foo
194 $ hg ci -Aqm "added foo"
196 $ hg ci -Aqm "added foo"
195 $ hg up '.^'
197 $ hg up '.^'
196 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
198 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
197 $ echo bar > bar
199 $ echo bar > bar
198 $ hg ci -Aqm "added bar"
200 $ hg ci -Aqm "added bar"
199 $ hg rm a/a
201 $ hg rm a/a
200 $ echo a > a
202 $ echo a > a
201 $ hg ci -Aqm "added a back!"
203 $ hg ci -Aqm "added a back!"
202 $ hg tglog
204 $ hg tglog
203 @ 7: 855e9797387e 'added a back!'
205 @ 7: 855e9797387e 'added a back!'
204 |
206 |
205 o 6: d14530e5e3e6 'added bar'
207 o 6: d14530e5e3e6 'added bar'
206 |
208 |
207 | o 5: 9b94b9373deb 'added foo'
209 | o 5: 9b94b9373deb 'added foo'
208 |/
210 |/
209 o 4: c6ad37a4f250 'a/a'
211 o 4: c6ad37a4f250 'a/a'
210 |
212 |
211 | o 3: 844a7de3e617 'c'
213 | o 3: 844a7de3e617 'c'
212 | |
214 | |
213 o | 2: 09c044d2cb43 'd'
215 o | 2: 09c044d2cb43 'd'
214 | |
216 | |
215 o | 1: fc055c3b4d33 'b'
217 o | 1: fc055c3b4d33 'b'
216 |/
218 |/
217 o 0: b173517d0057 'a'
219 o 0: b173517d0057 'a'
218
220
219 $ hg rebase -r . -d 5
221 $ hg rebase -r . -d 5
220 rebasing 7:855e9797387e "added a back!" (tip)
222 rebasing 7:855e9797387e "added a back!" (tip)
221 saved backup bundle to $TESTTMP/repo1/repo2/.hg/strip-backup/855e9797387e-81ee4c5d-rebase.hg
223 saved backup bundle to $TESTTMP/repo1/repo2/.hg/strip-backup/855e9797387e-81ee4c5d-rebase.hg
222
224
223 $ hg tglog
225 $ hg tglog
224 @ 7: bb3f02be2688 'added a back!'
226 @ 7: bb3f02be2688 'added a back!'
225 |
227 |
226 | o 6: d14530e5e3e6 'added bar'
228 | o 6: d14530e5e3e6 'added bar'
227 | |
229 | |
228 o | 5: 9b94b9373deb 'added foo'
230 o | 5: 9b94b9373deb 'added foo'
229 |/
231 |/
230 o 4: c6ad37a4f250 'a/a'
232 o 4: c6ad37a4f250 'a/a'
231 |
233 |
232 | o 3: 844a7de3e617 'c'
234 | o 3: 844a7de3e617 'c'
233 | |
235 | |
234 o | 2: 09c044d2cb43 'd'
236 o | 2: 09c044d2cb43 'd'
235 | |
237 | |
236 o | 1: fc055c3b4d33 'b'
238 o | 1: fc055c3b4d33 'b'
237 |/
239 |/
238 o 0: b173517d0057 'a'
240 o 0: b173517d0057 'a'
239
241
240
242
241 $ cd ..
243 $ cd ..
242
244
243 Test dry-run rebasing
245 Test dry-run rebasing
244
246
245 $ hg init repo3
247 $ hg init repo3
246 $ cd repo3
248 $ cd repo3
247 $ echo a>a
249 $ echo a>a
248 $ hg ci -Aqma
250 $ hg ci -Aqma
249 $ echo b>b
251 $ echo b>b
250 $ hg ci -Aqmb
252 $ hg ci -Aqmb
251 $ echo c>c
253 $ echo c>c
252 $ hg ci -Aqmc
254 $ hg ci -Aqmc
253 $ echo d>d
255 $ echo d>d
254 $ hg ci -Aqmd
256 $ hg ci -Aqmd
255 $ echo e>e
257 $ echo e>e
256 $ hg ci -Aqme
258 $ hg ci -Aqme
257
259
258 $ hg up 1 -q
260 $ hg up 1 -q
259 $ echo f>f
261 $ echo f>f
260 $ hg ci -Amf
262 $ hg ci -Amf
261 adding f
263 adding f
262 created new head
264 created new head
263 $ echo g>g
265 $ echo g>g
264 $ hg ci -Aqmg
266 $ hg ci -Aqmg
265 $ hg log -G --template "{rev}:{short(node)} {person(author)}\n{firstline(desc)} {topic}\n\n"
267 $ hg log -G --template "{rev}:{short(node)} {person(author)}\n{firstline(desc)} {topic}\n\n"
266 @ 6:baf10c5166d4 test
268 @ 6:baf10c5166d4 test
267 | g
269 | g
268 |
270 |
269 o 5:6343ca3eff20 test
271 o 5:6343ca3eff20 test
270 | f
272 | f
271 |
273 |
272 | o 4:e860deea161a test
274 | o 4:e860deea161a test
273 | | e
275 | | e
274 | |
276 | |
275 | o 3:055a42cdd887 test
277 | o 3:055a42cdd887 test
276 | | d
278 | | d
277 | |
279 | |
278 | o 2:177f92b77385 test
280 | o 2:177f92b77385 test
279 |/ c
281 |/ c
280 |
282 |
281 o 1:d2ae7f538514 test
283 o 1:d2ae7f538514 test
282 | b
284 | b
283 |
285 |
284 o 0:cb9a9f314b8b test
286 o 0:cb9a9f314b8b test
285 a
287 a
286
288
287 Make sure it throws error while passing --continue or --abort with --dry-run
289 Make sure it throws error while passing --continue or --abort with --dry-run
288 $ hg rebase -s 2 -d 6 -n --continue
290 $ hg rebase -s 2 -d 6 -n --continue
289 abort: cannot specify both --dry-run and --continue
291 abort: cannot specify both --dry-run and --continue
290 [255]
292 [255]
291 $ hg rebase -s 2 -d 6 -n --abort
293 $ hg rebase -s 2 -d 6 -n --abort
292 abort: cannot specify both --dry-run and --abort
294 abort: cannot specify both --dry-run and --abort
293 [255]
295 [255]
294
296
295 Check dryrun gives correct results when there is no conflict in rebasing
297 Check dryrun gives correct results when there is no conflict in rebasing
296 $ hg rebase -s 2 -d 6 -n
298 $ hg rebase -s 2 -d 6 -n
297 starting dry-run rebase; repository will not be changed
299 starting dry-run rebase; repository will not be changed
298 rebasing 2:177f92b77385 "c"
300 rebasing 2:177f92b77385 "c"
299 rebasing 3:055a42cdd887 "d"
301 rebasing 3:055a42cdd887 "d"
300 rebasing 4:e860deea161a "e"
302 rebasing 4:e860deea161a "e"
301 dry-run rebase completed successfully; run without -n/--dry-run to perform this rebase
303 dry-run rebase completed successfully; run without -n/--dry-run to perform this rebase
302
304
303 $ hg diff
305 $ hg diff
304 $ hg status
306 $ hg status
305
307
306 $ hg log -G --template "{rev}:{short(node)} {person(author)}\n{firstline(desc)} {topic}\n\n"
308 $ hg log -G --template "{rev}:{short(node)} {person(author)}\n{firstline(desc)} {topic}\n\n"
307 @ 6:baf10c5166d4 test
309 @ 6:baf10c5166d4 test
308 | g
310 | g
309 |
311 |
310 o 5:6343ca3eff20 test
312 o 5:6343ca3eff20 test
311 | f
313 | f
312 |
314 |
313 | o 4:e860deea161a test
315 | o 4:e860deea161a test
314 | | e
316 | | e
315 | |
317 | |
316 | o 3:055a42cdd887 test
318 | o 3:055a42cdd887 test
317 | | d
319 | | d
318 | |
320 | |
319 | o 2:177f92b77385 test
321 | o 2:177f92b77385 test
320 |/ c
322 |/ c
321 |
323 |
322 o 1:d2ae7f538514 test
324 o 1:d2ae7f538514 test
323 | b
325 | b
324 |
326 |
325 o 0:cb9a9f314b8b test
327 o 0:cb9a9f314b8b test
326 a
328 a
327
329
328 Check dryrun working with --collapse when there is no conflict
330 Check dryrun working with --collapse when there is no conflict
329 $ hg rebase -s 2 -d 6 -n --collapse
331 $ hg rebase -s 2 -d 6 -n --collapse
330 starting dry-run rebase; repository will not be changed
332 starting dry-run rebase; repository will not be changed
331 rebasing 2:177f92b77385 "c"
333 rebasing 2:177f92b77385 "c"
332 rebasing 3:055a42cdd887 "d"
334 rebasing 3:055a42cdd887 "d"
333 rebasing 4:e860deea161a "e"
335 rebasing 4:e860deea161a "e"
334 dry-run rebase completed successfully; run without -n/--dry-run to perform this rebase
336 dry-run rebase completed successfully; run without -n/--dry-run to perform this rebase
335
337
336 Check dryrun gives correct results when there is conflict in rebasing
338 Check dryrun gives correct results when there is conflict in rebasing
337 Make a conflict:
339 Make a conflict:
338 $ hg up 6 -q
340 $ hg up 6 -q
339 $ echo conflict>e
341 $ echo conflict>e
340 $ hg ci -Aqm "conflict with e"
342 $ hg ci -Aqm "conflict with e"
341 $ hg log -G --template "{rev}:{short(node)} {person(author)}\n{firstline(desc)} {topic}\n\n"
343 $ hg log -G --template "{rev}:{short(node)} {person(author)}\n{firstline(desc)} {topic}\n\n"
342 @ 7:d2c195b28050 test
344 @ 7:d2c195b28050 test
343 | conflict with e
345 | conflict with e
344 |
346 |
345 o 6:baf10c5166d4 test
347 o 6:baf10c5166d4 test
346 | g
348 | g
347 |
349 |
348 o 5:6343ca3eff20 test
350 o 5:6343ca3eff20 test
349 | f
351 | f
350 |
352 |
351 | o 4:e860deea161a test
353 | o 4:e860deea161a test
352 | | e
354 | | e
353 | |
355 | |
354 | o 3:055a42cdd887 test
356 | o 3:055a42cdd887 test
355 | | d
357 | | d
356 | |
358 | |
357 | o 2:177f92b77385 test
359 | o 2:177f92b77385 test
358 |/ c
360 |/ c
359 |
361 |
360 o 1:d2ae7f538514 test
362 o 1:d2ae7f538514 test
361 | b
363 | b
362 |
364 |
363 o 0:cb9a9f314b8b test
365 o 0:cb9a9f314b8b test
364 a
366 a
365
367
366 $ hg rebase -s 2 -d 7 -n
368 $ hg rebase -s 2 -d 7 -n
367 starting dry-run rebase; repository will not be changed
369 starting dry-run rebase; repository will not be changed
368 rebasing 2:177f92b77385 "c"
370 rebasing 2:177f92b77385 "c"
369 rebasing 3:055a42cdd887 "d"
371 rebasing 3:055a42cdd887 "d"
370 rebasing 4:e860deea161a "e"
372 rebasing 4:e860deea161a "e"
371 merging e
373 merging e
372 transaction abort!
374 transaction abort!
373 rollback completed
375 rollback completed
374 hit a merge conflict
376 hit a merge conflict
375 [1]
377 [1]
376 $ hg diff
378 $ hg diff
377 $ hg status
379 $ hg status
378 $ hg log -G --template "{rev}:{short(node)} {person(author)}\n{firstline(desc)} {topic}\n\n"
380 $ hg log -G --template "{rev}:{short(node)} {person(author)}\n{firstline(desc)} {topic}\n\n"
379 @ 7:d2c195b28050 test
381 @ 7:d2c195b28050 test
380 | conflict with e
382 | conflict with e
381 |
383 |
382 o 6:baf10c5166d4 test
384 o 6:baf10c5166d4 test
383 | g
385 | g
384 |
386 |
385 o 5:6343ca3eff20 test
387 o 5:6343ca3eff20 test
386 | f
388 | f
387 |
389 |
388 | o 4:e860deea161a test
390 | o 4:e860deea161a test
389 | | e
391 | | e
390 | |
392 | |
391 | o 3:055a42cdd887 test
393 | o 3:055a42cdd887 test
392 | | d
394 | | d
393 | |
395 | |
394 | o 2:177f92b77385 test
396 | o 2:177f92b77385 test
395 |/ c
397 |/ c
396 |
398 |
397 o 1:d2ae7f538514 test
399 o 1:d2ae7f538514 test
398 | b
400 | b
399 |
401 |
400 o 0:cb9a9f314b8b test
402 o 0:cb9a9f314b8b test
401 a
403 a
402
404
403 Check dryrun working with --collapse when there is conflicts
405 Check dryrun working with --collapse when there is conflicts
404 $ hg rebase -s 2 -d 7 -n --collapse
406 $ hg rebase -s 2 -d 7 -n --collapse
405 starting dry-run rebase; repository will not be changed
407 starting dry-run rebase; repository will not be changed
406 rebasing 2:177f92b77385 "c"
408 rebasing 2:177f92b77385 "c"
407 rebasing 3:055a42cdd887 "d"
409 rebasing 3:055a42cdd887 "d"
408 rebasing 4:e860deea161a "e"
410 rebasing 4:e860deea161a "e"
409 merging e
411 merging e
410 hit a merge conflict
412 hit a merge conflict
411 [1]
413 [1]
412
414
413 In-memory rebase that fails due to merge conflicts
415 In-memory rebase that fails due to merge conflicts
414
416
415 $ hg rebase -s 2 -d 7
417 $ hg rebase -s 2 -d 7
416 rebasing 2:177f92b77385 "c"
418 rebasing 2:177f92b77385 "c"
417 rebasing 3:055a42cdd887 "d"
419 rebasing 3:055a42cdd887 "d"
418 rebasing 4:e860deea161a "e"
420 rebasing 4:e860deea161a "e"
419 merging e
421 merging e
420 transaction abort!
422 transaction abort!
421 rollback completed
423 rollback completed
422 hit merge conflicts; re-running rebase without in-memory merge
424 hit merge conflicts; re-running rebase without in-memory merge
423 rebase aborted
425 rebase aborted
424 rebasing 2:177f92b77385 "c"
426 rebasing 2:177f92b77385 "c"
425 rebasing 3:055a42cdd887 "d"
427 rebasing 3:055a42cdd887 "d"
426 rebasing 4:e860deea161a "e"
428 rebasing 4:e860deea161a "e"
427 merging e
429 merging e
428 warning: conflicts while merging e! (edit, then use 'hg resolve --mark')
430 warning: conflicts while merging e! (edit, then use 'hg resolve --mark')
429 unresolved conflicts (see hg resolve, then hg rebase --continue)
431 unresolved conflicts (see hg resolve, then hg rebase --continue)
430 [1]
432 [1]
433 $ hg rebase --abort
434 saved backup bundle to $TESTTMP/repo1/repo3/.hg/strip-backup/c1e524d4287c-f91f82e1-backup.hg
435 rebase aborted
436
437 Retrying without in-memory merge won't lose working copy changes
438 $ cd ..
439 $ hg clone repo3 repo3-dirty -q
440 $ cd repo3-dirty
441 $ echo dirty > a
442 $ hg rebase -s 2 -d 7
443 rebasing 2:177f92b77385 "c"
444 rebasing 3:055a42cdd887 "d"
445 rebasing 4:e860deea161a "e"
446 merging e
447 transaction abort!
448 rollback completed
449 hit merge conflicts; re-running rebase without in-memory merge
450 rebase aborted
451 rebasing 2:177f92b77385 "c"
452 rebasing 3:055a42cdd887 "d"
453 rebasing 4:e860deea161a "e"
454 merging e
455 warning: conflicts while merging e! (edit, then use 'hg resolve --mark')
456 unresolved conflicts (see hg resolve, then hg rebase --continue)
457 [1]
458 BROKEN: working copy change to "a" was lost
459 $ cat a
460 a
461
462 Retrying without in-memory merge won't lose merge state
463 $ cd ..
464 $ hg clone repo3 repo3-merge-state -q
465 $ cd repo3-merge-state
466 $ hg merge 4
467 merging e
468 warning: conflicts while merging e! (edit, then use 'hg resolve --mark')
469 2 files updated, 0 files merged, 0 files removed, 1 files unresolved
470 use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
471 [1]
472 $ hg resolve -l
473 U e
474 BROKEN: these should not say "created no changes to commit"
475 $ hg rebase -s 2 -d 7
476 rebasing 2:177f92b77385 "c"
477 note: rebase of 2:177f92b77385 created no changes to commit
478 rebasing 3:055a42cdd887 "d"
479 note: rebase of 3:055a42cdd887 created no changes to commit
480 rebasing 4:e860deea161a "e"
481 note: rebase of 4:e860deea161a created no changes to commit
482 saved backup bundle to $TESTTMP/repo1/repo3-merge-state/.hg/strip-backup/177f92b77385-4da7ba9e-rebase.hg
483 BROKEN: merge state lost
484 $ hg resolve -l
431
485
432 ==========================
486 ==========================
433 Test for --confirm option|
487 Test for --confirm option|
434 ==========================
488 ==========================
435 $ cd ..
489 $ cd ..
436 $ hg clone repo3 repo4 -q
490 $ hg clone repo3 repo4 -q
437 $ cd repo4
491 $ cd repo4
438 $ hg strip 7 -q
492 $ hg strip 7 -q
439 $ hg log -G --template "{rev}:{short(node)} {person(author)}\n{firstline(desc)} {topic}\n\n"
493 $ hg log -G --template "{rev}:{short(node)} {person(author)}\n{firstline(desc)} {topic}\n\n"
440 @ 6:baf10c5166d4 test
494 @ 6:baf10c5166d4 test
441 | g
495 | g
442 |
496 |
443 o 5:6343ca3eff20 test
497 o 5:6343ca3eff20 test
444 | f
498 | f
445 |
499 |
446 | o 4:e860deea161a test
500 | o 4:e860deea161a test
447 | | e
501 | | e
448 | |
502 | |
449 | o 3:055a42cdd887 test
503 | o 3:055a42cdd887 test
450 | | d
504 | | d
451 | |
505 | |
452 | o 2:177f92b77385 test
506 | o 2:177f92b77385 test
453 |/ c
507 |/ c
454 |
508 |
455 o 1:d2ae7f538514 test
509 o 1:d2ae7f538514 test
456 | b
510 | b
457 |
511 |
458 o 0:cb9a9f314b8b test
512 o 0:cb9a9f314b8b test
459 a
513 a
460
514
461 Check it gives error when both --dryrun and --confirm is used:
515 Check it gives error when both --dryrun and --confirm is used:
462 $ hg rebase -s 2 -d . --confirm --dry-run
516 $ hg rebase -s 2 -d . --confirm --dry-run
463 abort: cannot specify both --confirm and --dry-run
517 abort: cannot specify both --confirm and --dry-run
464 [255]
518 [255]
465 $ hg rebase -s 2 -d . --confirm --abort
519 $ hg rebase -s 2 -d . --confirm --abort
466 abort: cannot specify both --confirm and --abort
520 abort: cannot specify both --confirm and --abort
467 [255]
521 [255]
468 $ hg rebase -s 2 -d . --confirm --continue
522 $ hg rebase -s 2 -d . --confirm --continue
469 abort: cannot specify both --confirm and --continue
523 abort: cannot specify both --confirm and --continue
470 [255]
524 [255]
471
525
472 Test --confirm option when there are no conflicts:
526 Test --confirm option when there are no conflicts:
473 $ hg rebase -s 2 -d . --keep --config ui.interactive=True --confirm << EOF
527 $ hg rebase -s 2 -d . --keep --config ui.interactive=True --confirm << EOF
474 > n
528 > n
475 > EOF
529 > EOF
476 starting in-memory rebase
530 starting in-memory rebase
477 rebasing 2:177f92b77385 "c"
531 rebasing 2:177f92b77385 "c"
478 rebasing 3:055a42cdd887 "d"
532 rebasing 3:055a42cdd887 "d"
479 rebasing 4:e860deea161a "e"
533 rebasing 4:e860deea161a "e"
480 rebase completed successfully
534 rebase completed successfully
481 apply changes (yn)? n
535 apply changes (yn)? n
482 $ hg log -G --template "{rev}:{short(node)} {person(author)}\n{firstline(desc)} {topic}\n\n"
536 $ hg log -G --template "{rev}:{short(node)} {person(author)}\n{firstline(desc)} {topic}\n\n"
483 @ 6:baf10c5166d4 test
537 @ 6:baf10c5166d4 test
484 | g
538 | g
485 |
539 |
486 o 5:6343ca3eff20 test
540 o 5:6343ca3eff20 test
487 | f
541 | f
488 |
542 |
489 | o 4:e860deea161a test
543 | o 4:e860deea161a test
490 | | e
544 | | e
491 | |
545 | |
492 | o 3:055a42cdd887 test
546 | o 3:055a42cdd887 test
493 | | d
547 | | d
494 | |
548 | |
495 | o 2:177f92b77385 test
549 | o 2:177f92b77385 test
496 |/ c
550 |/ c
497 |
551 |
498 o 1:d2ae7f538514 test
552 o 1:d2ae7f538514 test
499 | b
553 | b
500 |
554 |
501 o 0:cb9a9f314b8b test
555 o 0:cb9a9f314b8b test
502 a
556 a
503
557
504 $ hg rebase -s 2 -d . --keep --config ui.interactive=True --confirm << EOF
558 $ hg rebase -s 2 -d . --keep --config ui.interactive=True --confirm << EOF
505 > y
559 > y
506 > EOF
560 > EOF
507 starting in-memory rebase
561 starting in-memory rebase
508 rebasing 2:177f92b77385 "c"
562 rebasing 2:177f92b77385 "c"
509 rebasing 3:055a42cdd887 "d"
563 rebasing 3:055a42cdd887 "d"
510 rebasing 4:e860deea161a "e"
564 rebasing 4:e860deea161a "e"
511 rebase completed successfully
565 rebase completed successfully
512 apply changes (yn)? y
566 apply changes (yn)? y
513 $ hg log -G --template "{rev}:{short(node)} {person(author)}\n{firstline(desc)} {topic}\n\n"
567 $ hg log -G --template "{rev}:{short(node)} {person(author)}\n{firstline(desc)} {topic}\n\n"
514 o 9:9fd28f55f6dc test
568 o 9:9fd28f55f6dc test
515 | e
569 | e
516 |
570 |
517 o 8:12cbf031f469 test
571 o 8:12cbf031f469 test
518 | d
572 | d
519 |
573 |
520 o 7:c83b1da5b1ae test
574 o 7:c83b1da5b1ae test
521 | c
575 | c
522 |
576 |
523 @ 6:baf10c5166d4 test
577 @ 6:baf10c5166d4 test
524 | g
578 | g
525 |
579 |
526 o 5:6343ca3eff20 test
580 o 5:6343ca3eff20 test
527 | f
581 | f
528 |
582 |
529 | o 4:e860deea161a test
583 | o 4:e860deea161a test
530 | | e
584 | | e
531 | |
585 | |
532 | o 3:055a42cdd887 test
586 | o 3:055a42cdd887 test
533 | | d
587 | | d
534 | |
588 | |
535 | o 2:177f92b77385 test
589 | o 2:177f92b77385 test
536 |/ c
590 |/ c
537 |
591 |
538 o 1:d2ae7f538514 test
592 o 1:d2ae7f538514 test
539 | b
593 | b
540 |
594 |
541 o 0:cb9a9f314b8b test
595 o 0:cb9a9f314b8b test
542 a
596 a
543
597
544 Test --confirm option when there is a conflict
598 Test --confirm option when there is a conflict
545 $ hg up tip -q
599 $ hg up tip -q
546 $ echo ee>e
600 $ echo ee>e
547 $ hg ci --amend -m "conflict with e" -q
601 $ hg ci --amend -m "conflict with e" -q
548 $ hg log -G --template "{rev}:{short(node)} {person(author)}\n{firstline(desc)} {topic}\n\n"
602 $ hg log -G --template "{rev}:{short(node)} {person(author)}\n{firstline(desc)} {topic}\n\n"
549 @ 9:906d72f66a59 test
603 @ 9:906d72f66a59 test
550 | conflict with e
604 | conflict with e
551 |
605 |
552 o 8:12cbf031f469 test
606 o 8:12cbf031f469 test
553 | d
607 | d
554 |
608 |
555 o 7:c83b1da5b1ae test
609 o 7:c83b1da5b1ae test
556 | c
610 | c
557 |
611 |
558 o 6:baf10c5166d4 test
612 o 6:baf10c5166d4 test
559 | g
613 | g
560 |
614 |
561 o 5:6343ca3eff20 test
615 o 5:6343ca3eff20 test
562 | f
616 | f
563 |
617 |
564 | o 4:e860deea161a test
618 | o 4:e860deea161a test
565 | | e
619 | | e
566 | |
620 | |
567 | o 3:055a42cdd887 test
621 | o 3:055a42cdd887 test
568 | | d
622 | | d
569 | |
623 | |
570 | o 2:177f92b77385 test
624 | o 2:177f92b77385 test
571 |/ c
625 |/ c
572 |
626 |
573 o 1:d2ae7f538514 test
627 o 1:d2ae7f538514 test
574 | b
628 | b
575 |
629 |
576 o 0:cb9a9f314b8b test
630 o 0:cb9a9f314b8b test
577 a
631 a
578
632
579 $ hg rebase -s 4 -d . --keep --confirm
633 $ hg rebase -s 4 -d . --keep --confirm
580 starting in-memory rebase
634 starting in-memory rebase
581 rebasing 4:e860deea161a "e"
635 rebasing 4:e860deea161a "e"
582 merging e
636 merging e
583 hit a merge conflict
637 hit a merge conflict
584 [1]
638 [1]
585 $ hg log -G --template "{rev}:{short(node)} {person(author)}\n{firstline(desc)} {topic}\n\n"
639 $ hg log -G --template "{rev}:{short(node)} {person(author)}\n{firstline(desc)} {topic}\n\n"
586 @ 9:906d72f66a59 test
640 @ 9:906d72f66a59 test
587 | conflict with e
641 | conflict with e
588 |
642 |
589 o 8:12cbf031f469 test
643 o 8:12cbf031f469 test
590 | d
644 | d
591 |
645 |
592 o 7:c83b1da5b1ae test
646 o 7:c83b1da5b1ae test
593 | c
647 | c
594 |
648 |
595 o 6:baf10c5166d4 test
649 o 6:baf10c5166d4 test
596 | g
650 | g
597 |
651 |
598 o 5:6343ca3eff20 test
652 o 5:6343ca3eff20 test
599 | f
653 | f
600 |
654 |
601 | o 4:e860deea161a test
655 | o 4:e860deea161a test
602 | | e
656 | | e
603 | |
657 | |
604 | o 3:055a42cdd887 test
658 | o 3:055a42cdd887 test
605 | | d
659 | | d
606 | |
660 | |
607 | o 2:177f92b77385 test
661 | o 2:177f92b77385 test
608 |/ c
662 |/ c
609 |
663 |
610 o 1:d2ae7f538514 test
664 o 1:d2ae7f538514 test
611 | b
665 | b
612 |
666 |
613 o 0:cb9a9f314b8b test
667 o 0:cb9a9f314b8b test
614 a
668 a
615
669
616 #if execbit
670 #if execbit
617
671
618 Test a metadata-only in-memory merge
672 Test a metadata-only in-memory merge
619 $ cd $TESTTMP
673 $ cd $TESTTMP
620 $ hg init no_exception
674 $ hg init no_exception
621 $ cd no_exception
675 $ cd no_exception
622 # Produce the following graph:
676 # Produce the following graph:
623 # o 'add +x to foo.txt'
677 # o 'add +x to foo.txt'
624 # | o r1 (adds bar.txt, just for something to rebase to)
678 # | o r1 (adds bar.txt, just for something to rebase to)
625 # |/
679 # |/
626 # o r0 (adds foo.txt, no +x)
680 # o r0 (adds foo.txt, no +x)
627 $ echo hi > foo.txt
681 $ echo hi > foo.txt
628 $ hg ci -qAm r0
682 $ hg ci -qAm r0
629 $ echo hi > bar.txt
683 $ echo hi > bar.txt
630 $ hg ci -qAm r1
684 $ hg ci -qAm r1
631 $ hg co -qr ".^"
685 $ hg co -qr ".^"
632 $ chmod +x foo.txt
686 $ chmod +x foo.txt
633 $ hg ci -qAm 'add +x to foo.txt'
687 $ hg ci -qAm 'add +x to foo.txt'
634 issue5960: this was raising an AttributeError exception
688 issue5960: this was raising an AttributeError exception
635 $ hg rebase -r . -d 1
689 $ hg rebase -r . -d 1
636 rebasing 2:539b93e77479 "add +x to foo.txt" (tip)
690 rebasing 2:539b93e77479 "add +x to foo.txt" (tip)
637 saved backup bundle to $TESTTMP/no_exception/.hg/strip-backup/*.hg (glob)
691 saved backup bundle to $TESTTMP/no_exception/.hg/strip-backup/*.hg (glob)
638 $ hg diff -c tip
692 $ hg diff -c tip
639 diff --git a/foo.txt b/foo.txt
693 diff --git a/foo.txt b/foo.txt
640 old mode 100644
694 old mode 100644
641 new mode 100755
695 new mode 100755
642
696
643 #endif
697 #endif
General Comments 0
You need to be logged in to leave comments. Login now