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