##// END OF EJS Templates
rebase: provides test case for (issue5610)...
marmoute -
r33137:918e7dcf stable
parent child Browse files
Show More
@@ -1,274 +1,326 b''
1 $ cat >> $HGRCPATH <<EOF
1 $ cat >> $HGRCPATH <<EOF
2 > [extensions]
2 > [extensions]
3 > rebase=
3 > rebase=
4 >
4 >
5 > [phases]
5 > [phases]
6 > publish=False
6 > publish=False
7 >
7 >
8 > [alias]
8 > [alias]
9 > tglog = log -G --template "{rev}: '{desc}' {branches}\n"
9 > tglog = log -G --template "{rev}: '{desc}' {branches}\n"
10 > tglogp = log -G --template "{rev}:{phase} '{desc}' {branches}\n"
10 > tglogp = log -G --template "{rev}:{phase} '{desc}' {branches}\n"
11 > EOF
11 > EOF
12
12
13
13
14 $ hg init a
14 $ hg init a
15 $ cd a
15 $ cd a
16
16
17 $ echo A > A
17 $ echo A > A
18 $ hg ci -Am A
18 $ hg ci -Am A
19 adding A
19 adding A
20
20
21 $ echo B > B
21 $ echo B > B
22 $ hg ci -Am B
22 $ hg ci -Am B
23 adding B
23 adding B
24
24
25 $ echo C >> A
25 $ echo C >> A
26 $ hg ci -m C
26 $ hg ci -m C
27
27
28 $ hg up -q -C 0
28 $ hg up -q -C 0
29
29
30 $ echo D >> A
30 $ echo D >> A
31 $ hg ci -m D
31 $ hg ci -m D
32 created new head
32 created new head
33
33
34 $ echo E > E
34 $ echo E > E
35 $ hg ci -Am E
35 $ hg ci -Am E
36 adding E
36 adding E
37
37
38 $ cd ..
38 $ cd ..
39
39
40
40
41 Changes during an interruption - continue:
41 Changes during an interruption - continue:
42
42
43 $ hg clone -q -u . a a1
43 $ hg clone -q -u . a a1
44 $ cd a1
44 $ cd a1
45
45
46 $ hg tglog
46 $ hg tglog
47 @ 4: 'E'
47 @ 4: 'E'
48 |
48 |
49 o 3: 'D'
49 o 3: 'D'
50 |
50 |
51 | o 2: 'C'
51 | o 2: 'C'
52 | |
52 | |
53 | o 1: 'B'
53 | o 1: 'B'
54 |/
54 |/
55 o 0: 'A'
55 o 0: 'A'
56
56
57 Rebasing B onto E:
57 Rebasing B onto E:
58
58
59 $ hg rebase -s 1 -d 4
59 $ hg rebase -s 1 -d 4
60 rebasing 1:27547f69f254 "B"
60 rebasing 1:27547f69f254 "B"
61 rebasing 2:965c486023db "C"
61 rebasing 2:965c486023db "C"
62 merging A
62 merging A
63 warning: conflicts while merging A! (edit, then use 'hg resolve --mark')
63 warning: conflicts while merging A! (edit, then use 'hg resolve --mark')
64 unresolved conflicts (see hg resolve, then hg rebase --continue)
64 unresolved conflicts (see hg resolve, then hg rebase --continue)
65 [1]
65 [1]
66
66
67 Force a commit on C during the interruption:
67 Force a commit on C during the interruption:
68
68
69 $ hg up -q -C 2 --config 'extensions.rebase=!'
69 $ hg up -q -C 2 --config 'extensions.rebase=!'
70
70
71 $ echo 'Extra' > Extra
71 $ echo 'Extra' > Extra
72 $ hg add Extra
72 $ hg add Extra
73 $ hg ci -m 'Extra' --config 'extensions.rebase=!'
73 $ hg ci -m 'Extra' --config 'extensions.rebase=!'
74
74
75 Force this commit onto secret phase
75 Force this commit onto secret phase
76
76
77 $ hg phase --force --secret 6
77 $ hg phase --force --secret 6
78
78
79 $ hg tglogp
79 $ hg tglogp
80 @ 6:secret 'Extra'
80 @ 6:secret 'Extra'
81 |
81 |
82 | o 5:draft 'B'
82 | o 5:draft 'B'
83 | |
83 | |
84 | o 4:draft 'E'
84 | o 4:draft 'E'
85 | |
85 | |
86 | o 3:draft 'D'
86 | o 3:draft 'D'
87 | |
87 | |
88 o | 2:draft 'C'
88 o | 2:draft 'C'
89 | |
89 | |
90 o | 1:draft 'B'
90 o | 1:draft 'B'
91 |/
91 |/
92 o 0:draft 'A'
92 o 0:draft 'A'
93
93
94 Resume the rebasing:
94 Resume the rebasing:
95
95
96 $ hg rebase --continue
96 $ hg rebase --continue
97 already rebased 1:27547f69f254 "B" as 45396c49d53b
97 already rebased 1:27547f69f254 "B" as 45396c49d53b
98 rebasing 2:965c486023db "C"
98 rebasing 2:965c486023db "C"
99 merging A
99 merging A
100 warning: conflicts while merging A! (edit, then use 'hg resolve --mark')
100 warning: conflicts while merging A! (edit, then use 'hg resolve --mark')
101 unresolved conflicts (see hg resolve, then hg rebase --continue)
101 unresolved conflicts (see hg resolve, then hg rebase --continue)
102 [1]
102 [1]
103
103
104 Solve the conflict and go on:
104 Solve the conflict and go on:
105
105
106 $ echo 'conflict solved' > A
106 $ echo 'conflict solved' > A
107 $ rm A.orig
107 $ rm A.orig
108 $ hg resolve -m A
108 $ hg resolve -m A
109 (no more unresolved files)
109 (no more unresolved files)
110 continue: hg rebase --continue
110 continue: hg rebase --continue
111
111
112 $ hg rebase --continue
112 $ hg rebase --continue
113 already rebased 1:27547f69f254 "B" as 45396c49d53b
113 already rebased 1:27547f69f254 "B" as 45396c49d53b
114 rebasing 2:965c486023db "C"
114 rebasing 2:965c486023db "C"
115 warning: new changesets detected on source branch, not stripping
115 warning: new changesets detected on source branch, not stripping
116
116
117 $ hg tglogp
117 $ hg tglogp
118 o 7:draft 'C'
118 o 7:draft 'C'
119 |
119 |
120 | o 6:secret 'Extra'
120 | o 6:secret 'Extra'
121 | |
121 | |
122 o | 5:draft 'B'
122 o | 5:draft 'B'
123 | |
123 | |
124 @ | 4:draft 'E'
124 @ | 4:draft 'E'
125 | |
125 | |
126 o | 3:draft 'D'
126 o | 3:draft 'D'
127 | |
127 | |
128 | o 2:draft 'C'
128 | o 2:draft 'C'
129 | |
129 | |
130 | o 1:draft 'B'
130 | o 1:draft 'B'
131 |/
131 |/
132 o 0:draft 'A'
132 o 0:draft 'A'
133
133
134 $ cd ..
134 $ cd ..
135
135
136
136
137 Changes during an interruption - abort:
137 Changes during an interruption - abort:
138
138
139 $ hg clone -q -u . a a2
139 $ hg clone -q -u . a a2
140 $ cd a2
140 $ cd a2
141
141
142 $ hg tglog
142 $ hg tglog
143 @ 4: 'E'
143 @ 4: 'E'
144 |
144 |
145 o 3: 'D'
145 o 3: 'D'
146 |
146 |
147 | o 2: 'C'
147 | o 2: 'C'
148 | |
148 | |
149 | o 1: 'B'
149 | o 1: 'B'
150 |/
150 |/
151 o 0: 'A'
151 o 0: 'A'
152
152
153 Rebasing B onto E:
153 Rebasing B onto E:
154
154
155 $ hg rebase -s 1 -d 4
155 $ hg rebase -s 1 -d 4
156 rebasing 1:27547f69f254 "B"
156 rebasing 1:27547f69f254 "B"
157 rebasing 2:965c486023db "C"
157 rebasing 2:965c486023db "C"
158 merging A
158 merging A
159 warning: conflicts while merging A! (edit, then use 'hg resolve --mark')
159 warning: conflicts while merging A! (edit, then use 'hg resolve --mark')
160 unresolved conflicts (see hg resolve, then hg rebase --continue)
160 unresolved conflicts (see hg resolve, then hg rebase --continue)
161 [1]
161 [1]
162
162
163 Force a commit on B' during the interruption:
163 Force a commit on B' during the interruption:
164
164
165 $ hg up -q -C 5 --config 'extensions.rebase=!'
165 $ hg up -q -C 5 --config 'extensions.rebase=!'
166
166
167 $ echo 'Extra' > Extra
167 $ echo 'Extra' > Extra
168 $ hg add Extra
168 $ hg add Extra
169 $ hg ci -m 'Extra' --config 'extensions.rebase=!'
169 $ hg ci -m 'Extra' --config 'extensions.rebase=!'
170
170
171 $ hg tglog
171 $ hg tglog
172 @ 6: 'Extra'
172 @ 6: 'Extra'
173 |
173 |
174 o 5: 'B'
174 o 5: 'B'
175 |
175 |
176 o 4: 'E'
176 o 4: 'E'
177 |
177 |
178 o 3: 'D'
178 o 3: 'D'
179 |
179 |
180 | o 2: 'C'
180 | o 2: 'C'
181 | |
181 | |
182 | o 1: 'B'
182 | o 1: 'B'
183 |/
183 |/
184 o 0: 'A'
184 o 0: 'A'
185
185
186 Abort the rebasing:
186 Abort the rebasing:
187
187
188 $ hg rebase --abort
188 $ hg rebase --abort
189 warning: new changesets detected on target branch, can't strip
189 warning: new changesets detected on target branch, can't strip
190 rebase aborted
190 rebase aborted
191
191
192 $ hg tglog
192 $ hg tglog
193 @ 6: 'Extra'
193 @ 6: 'Extra'
194 |
194 |
195 o 5: 'B'
195 o 5: 'B'
196 |
196 |
197 o 4: 'E'
197 o 4: 'E'
198 |
198 |
199 o 3: 'D'
199 o 3: 'D'
200 |
200 |
201 | o 2: 'C'
201 | o 2: 'C'
202 | |
202 | |
203 | o 1: 'B'
203 | o 1: 'B'
204 |/
204 |/
205 o 0: 'A'
205 o 0: 'A'
206
206
207 $ cd ..
207 $ cd ..
208
208
209 Changes during an interruption - abort (again):
209 Changes during an interruption - abort (again):
210
210
211 $ hg clone -q -u . a a3
211 $ hg clone -q -u . a a3
212 $ cd a3
212 $ cd a3
213
213
214 $ hg tglogp
214 $ hg tglogp
215 @ 4:draft 'E'
215 @ 4:draft 'E'
216 |
216 |
217 o 3:draft 'D'
217 o 3:draft 'D'
218 |
218 |
219 | o 2:draft 'C'
219 | o 2:draft 'C'
220 | |
220 | |
221 | o 1:draft 'B'
221 | o 1:draft 'B'
222 |/
222 |/
223 o 0:draft 'A'
223 o 0:draft 'A'
224
224
225 Rebasing B onto E:
225 Rebasing B onto E:
226
226
227 $ hg rebase -s 1 -d 4
227 $ hg rebase -s 1 -d 4
228 rebasing 1:27547f69f254 "B"
228 rebasing 1:27547f69f254 "B"
229 rebasing 2:965c486023db "C"
229 rebasing 2:965c486023db "C"
230 merging A
230 merging A
231 warning: conflicts while merging A! (edit, then use 'hg resolve --mark')
231 warning: conflicts while merging A! (edit, then use 'hg resolve --mark')
232 unresolved conflicts (see hg resolve, then hg rebase --continue)
232 unresolved conflicts (see hg resolve, then hg rebase --continue)
233 [1]
233 [1]
234
234
235 Change phase on B and B'
235 Change phase on B and B'
236
236
237 $ hg up -q -C 5 --config 'extensions.rebase=!'
237 $ hg up -q -C 5 --config 'extensions.rebase=!'
238 $ hg phase --public 1
238 $ hg phase --public 1
239 $ hg phase --public 5
239 $ hg phase --public 5
240 $ hg phase --secret -f 2
240 $ hg phase --secret -f 2
241
241
242 $ hg tglogp
242 $ hg tglogp
243 @ 5:public 'B'
243 @ 5:public 'B'
244 |
244 |
245 o 4:public 'E'
245 o 4:public 'E'
246 |
246 |
247 o 3:public 'D'
247 o 3:public 'D'
248 |
248 |
249 | o 2:secret 'C'
249 | o 2:secret 'C'
250 | |
250 | |
251 | o 1:public 'B'
251 | o 1:public 'B'
252 |/
252 |/
253 o 0:public 'A'
253 o 0:public 'A'
254
254
255 Abort the rebasing:
255 Abort the rebasing:
256
256
257 $ hg rebase --abort
257 $ hg rebase --abort
258 warning: can't clean up public changesets 45396c49d53b
258 warning: can't clean up public changesets 45396c49d53b
259 rebase aborted
259 rebase aborted
260
260
261 $ hg tglogp
261 $ hg tglogp
262 @ 5:public 'B'
262 @ 5:public 'B'
263 |
263 |
264 o 4:public 'E'
264 o 4:public 'E'
265 |
265 |
266 o 3:public 'D'
266 o 3:public 'D'
267 |
267 |
268 | o 2:secret 'C'
268 | o 2:secret 'C'
269 | |
269 | |
270 | o 1:public 'B'
270 | o 1:public 'B'
271 |/
271 |/
272 o 0:public 'A'
272 o 0:public 'A'
273
273
274
275 Test rebase interrupted by hooks (pretxncommit)
276
277 $ hg up 2
278 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
279 $ echo F > F
280 $ hg add F
281 $ hg ci -m F
282 $ hg rebase --source 2 --dest 5 --tool internal:other --config 'hooks.pretxncommit=hg log -r $HG_NODE | grep "summary: C"'
283 rebasing 2:965c486023db "C"
284 summary: C
285 rebasing 6:a0b2430ebfb8 "F" (tip)
286 transaction abort!
287 rollback completed
288 abort: pretxncommit hook exited with status 1
289 [255]
290 $ hg tglogp
291 @ 7:secret 'C'
292 |
293 | @ 6:secret 'F'
294 | |
295 o | 5:public 'B'
296 | |
297 o | 4:public 'E'
298 | |
299 o | 3:public 'D'
300 | |
301 | o 2:secret 'C'
302 | |
303 | o 1:public 'B'
304 |/
305 o 0:public 'A'
306
307 $ hg rebase --continue
308 already rebased 2:965c486023db "C" as 401ccec5e39f
309 rebasing 6:a0b2430ebfb8 "F"
310 saved backup bundle to $TESTTMP/a3/.hg/strip-backup/965c486023db-aa6250e7-backup.hg (glob)
311 $ hg tglogp
312 @ 6:secret 'F'
313 |
314 o 5:secret 'C'
315 |
316 o 4:public 'B'
317 |
318 o 3:public 'E'
319 |
320 o 2:public 'D'
321 |
322 | o 1:public 'B'
323 |/
324 o 0:public 'A'
325
274 $ cd ..
326 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now