|
1 Tests for the --stop flag for `hg evolve` command while resolving orphans |
|
2 ========================================================================= |
|
3 |
|
4 The `--stop` flag stops the interrupted evolution and delete the state file so |
|
5 user can do other things and comeback and do evolution later on |
|
6 |
|
7 This is testing cases when `hg evolve` command is doing orphan resolution. |
|
8 |
|
9 Setup |
|
10 ===== |
|
11 |
|
12 $ cat >> $HGRCPATH <<EOF |
|
13 > [alias] |
|
14 > glog = log -GT "{rev}:{node|short} {desc}\n ({bookmarks}) {phase}" |
|
15 > [extensions] |
|
16 > EOF |
|
17 $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH |
|
18 |
|
19 $ hg init stoprepo |
|
20 $ cd stoprepo |
|
21 $ echo ".*\.orig" > .hgignore |
|
22 $ hg add .hgignore |
|
23 $ hg ci -m "added hgignore" |
|
24 $ for ch in a b c d; do echo foo > $ch; hg add $ch; hg ci -qm "added "$ch; done; |
|
25 |
|
26 $ hg glog |
|
27 @ 4:c41c793e0ef1 added d |
|
28 | () draft |
|
29 o 3:ca1b80f7960a added c |
|
30 | () draft |
|
31 o 2:b1661037fa25 added b |
|
32 | () draft |
|
33 o 1:c7586e2a9264 added a |
|
34 | () draft |
|
35 o 0:8fa14d15e168 added hgignore |
|
36 () draft |
|
37 |
|
38 Testing `--stop` when no evolve is interrupted |
|
39 ============================================== |
|
40 |
|
41 $ hg evolve --stop |
|
42 abort: no interrupted evolve to stop |
|
43 [255] |
|
44 |
|
45 Testing with wrong combinations of flags |
|
46 ======================================== |
|
47 |
|
48 $ hg evolve --stop --rev 1 |
|
49 abort: cannot specify both "--rev" and "--stop" |
|
50 [255] |
|
51 |
|
52 $ hg evolve --stop --continue |
|
53 abort: cannot specify both "--stop" and "--continue" |
|
54 [255] |
|
55 |
|
56 $ hg evolve --stop --all |
|
57 abort: cannot specify both "--all" and "--stop" |
|
58 [255] |
|
59 |
|
60 $ hg evolve --stop --any |
|
61 abort: cannot specify both "--any" and "--stop" |
|
62 [255] |
|
63 |
|
64 Testing when only one revision is to evolve |
|
65 =========================================== |
|
66 |
|
67 $ hg prev |
|
68 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
69 [3] added c |
|
70 $ echo bar > d |
|
71 $ hg add d |
|
72 $ hg amend |
|
73 1 new orphan changesets |
|
74 $ hg glog |
|
75 @ 5:cb6a2ab625bb added c |
|
76 | () draft |
|
77 | * 4:c41c793e0ef1 added d |
|
78 | | () draft |
|
79 | x 3:ca1b80f7960a added c |
|
80 |/ () draft |
|
81 o 2:b1661037fa25 added b |
|
82 | () draft |
|
83 o 1:c7586e2a9264 added a |
|
84 | () draft |
|
85 o 0:8fa14d15e168 added hgignore |
|
86 () draft |
|
87 |
|
88 $ hg evolve |
|
89 move:[4] added d |
|
90 atop:[5] added c |
|
91 merging d |
|
92 warning: conflicts while merging d! (edit, then use 'hg resolve --mark') |
|
93 evolve failed! |
|
94 fix conflict and run 'hg evolve --continue' or use 'hg evolve --abort' to abort |
|
95 abort: unresolved merge conflicts (see hg help resolve) |
|
96 [255] |
|
97 |
|
98 $ hg evolve --stop |
|
99 stopped the interrupted evolve |
|
100 working directory is now at cb6a2ab625bb |
|
101 |
|
102 Checking whether evolvestate file exists or not |
|
103 $ cat .hg/evolvestate |
|
104 cat: .hg/evolvestate: No such file or directory |
|
105 [1] |
|
106 |
|
107 Checking where we are |
|
108 $ hg id |
|
109 cb6a2ab625bb tip |
|
110 |
|
111 Checking working dir |
|
112 $ hg status |
|
113 Checking for incomplete mergestate |
|
114 $ ls .hg/merge |
|
115 ls: cannot access .?\.hg/merge.?: No such file or directory (re) |
|
116 [2] |
|
117 |
|
118 Checking graph |
|
119 $ hg glog |
|
120 @ 5:cb6a2ab625bb added c |
|
121 | () draft |
|
122 | * 4:c41c793e0ef1 added d |
|
123 | | () draft |
|
124 | x 3:ca1b80f7960a added c |
|
125 |/ () draft |
|
126 o 2:b1661037fa25 added b |
|
127 | () draft |
|
128 o 1:c7586e2a9264 added a |
|
129 | () draft |
|
130 o 0:8fa14d15e168 added hgignore |
|
131 () draft |
|
132 |
|
133 Testing the stop flag in case conflicts are caused by `hg next --evolve` |
|
134 ======================================================================== |
|
135 |
|
136 $ hg next --evolve |
|
137 move:[4] added d |
|
138 atop:[5] added c |
|
139 merging d |
|
140 warning: conflicts while merging d! (edit, then use 'hg resolve --mark') |
|
141 evolve failed! |
|
142 fix conflict and run 'hg evolve --continue' or use 'hg evolve --abort' to abort |
|
143 abort: unresolved merge conflicts (see hg help resolve) |
|
144 [255] |
|
145 |
|
146 $ hg diff |
|
147 diff -r cb6a2ab625bb d |
|
148 --- a/d Thu Jan 01 00:00:00 1970 +0000 |
|
149 +++ b/d Thu Jan 01 00:00:00 1970 +0000 |
|
150 @@ -1,1 +1,5 @@ |
|
151 +<<<<<<< destination: cb6a2ab625bb - test: added c |
|
152 bar |
|
153 +======= |
|
154 +foo |
|
155 +>>>>>>> evolving: c41c793e0ef1 - test: added d |
|
156 |
|
157 $ hg evolve --stop |
|
158 stopped the interrupted evolve |
|
159 working directory is now at cb6a2ab625bb |
|
160 |
|
161 $ hg glog |
|
162 @ 5:cb6a2ab625bb added c |
|
163 | () draft |
|
164 | * 4:c41c793e0ef1 added d |
|
165 | | () draft |
|
166 | x 3:ca1b80f7960a added c |
|
167 |/ () draft |
|
168 o 2:b1661037fa25 added b |
|
169 | () draft |
|
170 o 1:c7586e2a9264 added a |
|
171 | () draft |
|
172 o 0:8fa14d15e168 added hgignore |
|
173 () draft |
|
174 |
|
175 $ hg status |
|
176 |
|
177 Checking when multiple revs need to be evolved, some revs evolve without |
|
178 conflicts |
|
179 ========================================================================= |
|
180 |
|
181 Making sure obsmarkers should be on evolved changeset and not rest of them once |
|
182 we do `evolve --stop` |
|
183 -------------------------------------------------------------------------------- |
|
184 |
|
185 $ hg evolve |
|
186 move:[4] added d |
|
187 atop:[5] added c |
|
188 merging d |
|
189 warning: conflicts while merging d! (edit, then use 'hg resolve --mark') |
|
190 evolve failed! |
|
191 fix conflict and run 'hg evolve --continue' or use 'hg evolve --abort' to abort |
|
192 abort: unresolved merge conflicts (see hg help resolve) |
|
193 [255] |
|
194 $ echo foo > d |
|
195 $ hg resolve -m |
|
196 (no more unresolved files) |
|
197 continue: hg evolve --continue |
|
198 $ hg evolve --continue |
|
199 evolving 4:c41c793e0ef1 "added d" |
|
200 working directory is now at 2a4e03d422e2 |
|
201 $ hg glog |
|
202 @ 6:2a4e03d422e2 added d |
|
203 | () draft |
|
204 o 5:cb6a2ab625bb added c |
|
205 | () draft |
|
206 o 2:b1661037fa25 added b |
|
207 | () draft |
|
208 o 1:c7586e2a9264 added a |
|
209 | () draft |
|
210 o 0:8fa14d15e168 added hgignore |
|
211 () draft |
|
212 |
|
213 $ hg up .^^^^ |
|
214 0 files updated, 0 files merged, 4 files removed, 0 files unresolved |
|
215 $ echo bar > c |
|
216 $ hg add c |
|
217 $ hg amend |
|
218 4 new orphan changesets |
|
219 |
|
220 $ hg glog |
|
221 @ 7:21817cd42526 added hgignore |
|
222 () draft |
|
223 * 6:2a4e03d422e2 added d |
|
224 | () draft |
|
225 * 5:cb6a2ab625bb added c |
|
226 | () draft |
|
227 * 2:b1661037fa25 added b |
|
228 | () draft |
|
229 * 1:c7586e2a9264 added a |
|
230 | () draft |
|
231 x 0:8fa14d15e168 added hgignore |
|
232 () draft |
|
233 |
|
234 $ hg evolve --all |
|
235 move:[1] added a |
|
236 atop:[7] added hgignore |
|
237 move:[2] added b |
|
238 atop:[8] added a |
|
239 move:[5] added c |
|
240 atop:[9] added b |
|
241 merging c |
|
242 warning: conflicts while merging c! (edit, then use 'hg resolve --mark') |
|
243 evolve failed! |
|
244 fix conflict and run 'hg evolve --continue' or use 'hg evolve --abort' to abort |
|
245 abort: unresolved merge conflicts (see hg help resolve) |
|
246 [255] |
|
247 |
|
248 $ hg status |
|
249 M c |
|
250 A d |
|
251 |
|
252 $ hg evolve --stop |
|
253 stopped the interrupted evolve |
|
254 working directory is now at aec285328e90 |
|
255 |
|
256 Only changeset which has a successor now are obsoleted |
|
257 $ hg glog |
|
258 @ 9:aec285328e90 added b |
|
259 | () draft |
|
260 o 8:fd00db71edca added a |
|
261 | () draft |
|
262 o 7:21817cd42526 added hgignore |
|
263 () draft |
|
264 * 6:2a4e03d422e2 added d |
|
265 | () draft |
|
266 * 5:cb6a2ab625bb added c |
|
267 | () draft |
|
268 x 2:b1661037fa25 added b |
|
269 | () draft |
|
270 x 1:c7586e2a9264 added a |
|
271 | () draft |
|
272 x 0:8fa14d15e168 added hgignore |
|
273 () draft |
|
274 |
|
275 Making sure doing evolve again resumes from right place and does the right thing |
|
276 |
|
277 $ hg evolve --all |
|
278 move:[5] added c |
|
279 atop:[9] added b |
|
280 merging c |
|
281 warning: conflicts while merging c! (edit, then use 'hg resolve --mark') |
|
282 evolve failed! |
|
283 fix conflict and run 'hg evolve --continue' or use 'hg evolve --abort' to abort |
|
284 abort: unresolved merge conflicts (see hg help resolve) |
|
285 [255] |
|
286 |
|
287 $ echo foobar > c |
|
288 $ hg resolve -m |
|
289 (no more unresolved files) |
|
290 continue: hg evolve --continue |
|
291 $ hg evolve --continue |
|
292 evolving 5:cb6a2ab625bb "added c" |
|
293 move:[6] added d |
|
294 atop:[10] added c |
|
295 working directory is now at cd0909a30222 |
|
296 $ hg glog |
|
297 @ 11:cd0909a30222 added d |
|
298 | () draft |
|
299 o 10:cb1dd1086ef6 added c |
|
300 | () draft |
|
301 o 9:aec285328e90 added b |
|
302 | () draft |
|
303 o 8:fd00db71edca added a |
|
304 | () draft |
|
305 o 7:21817cd42526 added hgignore |
|
306 () draft |
|
307 |
|
308 Bookmarks should only be moved of the changesets which have been evolved, |
|
309 bookmarks of rest of them should stay where they are are |
|
310 ------------------------------------------------------------------------- |
|
311 |
|
312 $ hg up .^ |
|
313 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
314 $ hg bookmark b1 |
|
315 $ hg up .^ |
|
316 1 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
317 (leaving bookmark b1) |
|
318 $ hg bookmark b2 |
|
319 |
|
320 $ hg glog |
|
321 o 11:cd0909a30222 added d |
|
322 | () draft |
|
323 o 10:cb1dd1086ef6 added c |
|
324 | (b1) draft |
|
325 @ 9:aec285328e90 added b |
|
326 | (b2) draft |
|
327 o 8:fd00db71edca added a |
|
328 | () draft |
|
329 o 7:21817cd42526 added hgignore |
|
330 () draft |
|
331 |
|
332 $ hg prev |
|
333 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
334 [8] added a |
|
335 $ echo tom > c |
|
336 $ hg amend |
|
337 3 new orphan changesets |
|
338 |
|
339 $ hg glog |
|
340 @ 12:a3cc2042492f added a |
|
341 | () draft |
|
342 | * 11:cd0909a30222 added d |
|
343 | | () draft |
|
344 | * 10:cb1dd1086ef6 added c |
|
345 | | (b1) draft |
|
346 | * 9:aec285328e90 added b |
|
347 | | (b2) draft |
|
348 | x 8:fd00db71edca added a |
|
349 |/ () draft |
|
350 o 7:21817cd42526 added hgignore |
|
351 () draft |
|
352 |
|
353 $ hg evolve --all |
|
354 move:[9] added b |
|
355 atop:[12] added a |
|
356 move:[10] added c |
|
357 atop:[13] added b |
|
358 merging c |
|
359 warning: conflicts while merging c! (edit, then use 'hg resolve --mark') |
|
360 evolve failed! |
|
361 fix conflict and run 'hg evolve --continue' or use 'hg evolve --abort' to abort |
|
362 abort: unresolved merge conflicts (see hg help resolve) |
|
363 [255] |
|
364 |
|
365 $ hg evolve --stop |
|
366 stopped the interrupted evolve |
|
367 working directory is now at a3f4b95da934 |
|
368 |
|
369 Bookmarks of only the changeset which are evolved is moved |
|
370 $ hg glog |
|
371 @ 13:a3f4b95da934 added b |
|
372 | (b2) draft |
|
373 o 12:a3cc2042492f added a |
|
374 | () draft |
|
375 | * 11:cd0909a30222 added d |
|
376 | | () draft |
|
377 | * 10:cb1dd1086ef6 added c |
|
378 | | (b1) draft |
|
379 | x 9:aec285328e90 added b |
|
380 | | () draft |
|
381 | x 8:fd00db71edca added a |
|
382 |/ () draft |
|
383 o 7:21817cd42526 added hgignore |
|
384 () draft |