22 > EOF |
22 > EOF |
23 $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH |
23 $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH |
24 $ mkcommit() { |
24 $ mkcommit() { |
25 > echo "$1" > "$1" |
25 > echo "$1" > "$1" |
26 > hg add "$1" |
26 > hg add "$1" |
27 > hg ci -m "add $1" |
27 > hg ci -m "add $1" $2 $3 |
28 > } |
28 > } |
29 |
29 |
30 |
30 |
31 Basic case, split a head |
31 Basic case, split a head |
32 $ hg init testsplit |
32 $ hg init testsplit |
33 $ cd testsplit |
33 $ cd testsplit |
34 $ mkcommit _a |
34 $ mkcommit _a |
35 $ mkcommit _b |
35 $ mkcommit _b |
36 $ mkcommit _c |
36 $ mkcommit _c --user other-test-user |
37 $ mkcommit _d |
37 $ mkcommit _d |
38 $ echo "change to a" >> _a |
38 $ echo "change to a" >> _a |
39 $ hg amend |
39 $ hg amend |
40 $ hg debugobsolete |
40 $ hg debugobsolete |
41 9e84a109b8eb081ad754681ee4b1380d17a3741f aa8f656bb307022172d2648be6fb65322f801225 0 (*) {'ef1': '*', 'user': 'test'} (glob) |
41 1334a80b33c3f9873edab728fbbcf500eab61d2e d2fe56e71366c2c5376c89960c281395062c0619 0 (*) {'ef1': '8', 'user': 'test'} (glob) |
42 f002b57772d7f09b180c407213ae16d92996a988 0 {9e84a109b8eb081ad754681ee4b1380d17a3741f} (*) {'ef1': '*', 'user': 'test'} (glob) |
42 06be89dfe2ae447383f30a2984933352757b6fb4 0 {1334a80b33c3f9873edab728fbbcf500eab61d2e} (*) {'ef1': '0', 'user': 'test'} (glob) |
43 |
43 |
44 To create commits with the number of split |
44 To create commits with the number of split |
45 $ echo 0 > num |
45 $ echo 0 > num |
46 $ cat > editor.sh << '__EOF__' |
46 $ cat > editor.sh << '__EOF__' |
47 > NUM=$(cat num) |
47 > NUM=$(cat num) |
89 record this change to '_d'? [Ynesfdaq?] y |
89 record this change to '_d'? [Ynesfdaq?] y |
90 |
90 |
91 no more change to split |
91 no more change to split |
92 |
92 |
93 $ hg debugobsolete |
93 $ hg debugobsolete |
94 9e84a109b8eb081ad754681ee4b1380d17a3741f aa8f656bb307022172d2648be6fb65322f801225 0 (*) {'ef1': '*', 'user': 'test'} (glob) |
94 1334a80b33c3f9873edab728fbbcf500eab61d2e d2fe56e71366c2c5376c89960c281395062c0619 0 (*) {'ef1': '8', 'user': 'test'} (glob) |
95 f002b57772d7f09b180c407213ae16d92996a988 0 {9e84a109b8eb081ad754681ee4b1380d17a3741f} (*) {'ef1': '*', 'user': 'test'} (glob) |
95 06be89dfe2ae447383f30a2984933352757b6fb4 0 {1334a80b33c3f9873edab728fbbcf500eab61d2e} (*) {'ef1': '0', 'user': 'test'} (glob) |
96 aa8f656bb307022172d2648be6fb65322f801225 a98b35e86cae589b61892127c5ec1c868e41d910 5410a2352fa3114883327beee89e3085eefac25c 0 (*) {'ef1': '*', 'user': 'test'} (glob) |
96 d2fe56e71366c2c5376c89960c281395062c0619 2d8abdb827cdf71ca477ef6985d7ceb257c53c1b 033b3f5ae73db67c10de938fb6f26b949aaef172 0 (*) {'ef1': '13', 'user': 'test'} (glob) |
97 $ hg glog |
97 $ hg glog |
98 @ changeset: 7:5410a2352fa3 |
98 @ changeset: 7:033b3f5ae73d |
99 | tag: tip |
99 | tag: tip |
100 | user: test |
100 | user: test |
101 | date: Thu Jan 01 00:00:00 1970 +0000 |
101 | date: Thu Jan 01 00:00:00 1970 +0000 |
102 | summary: split2 |
102 | summary: split2 |
103 | |
103 | |
104 o changeset: 6:a98b35e86cae |
104 o changeset: 6:2d8abdb827cd |
105 | parent: 2:102002290587 |
105 | parent: 2:52149352b372 |
106 | user: test |
106 | user: test |
107 | date: Thu Jan 01 00:00:00 1970 +0000 |
107 | date: Thu Jan 01 00:00:00 1970 +0000 |
108 | summary: split1 |
108 | summary: split1 |
109 | |
109 | |
110 o changeset: 2:102002290587 |
110 o changeset: 2:52149352b372 |
111 | user: test |
111 | user: other-test-user |
112 | date: Thu Jan 01 00:00:00 1970 +0000 |
112 | date: Thu Jan 01 00:00:00 1970 +0000 |
113 | summary: add _c |
113 | summary: add _c |
114 | |
114 | |
115 o changeset: 1:37445b16603b |
115 o changeset: 1:37445b16603b |
116 | user: test |
116 | user: test |
196 |
196 |
197 Stop before splitting the commit completely creates a commit with all the |
197 Stop before splitting the commit completely creates a commit with all the |
198 remaining changes |
198 remaining changes |
199 |
199 |
200 $ hg debugobsolete |
200 $ hg debugobsolete |
201 9e84a109b8eb081ad754681ee4b1380d17a3741f aa8f656bb307022172d2648be6fb65322f801225 0 (*) {'ef1': '*', 'user': 'test'} (glob) |
201 1334a80b33c3f9873edab728fbbcf500eab61d2e d2fe56e71366c2c5376c89960c281395062c0619 0 (*) {'ef1': '8', 'user': 'test'} (glob) |
202 f002b57772d7f09b180c407213ae16d92996a988 0 {9e84a109b8eb081ad754681ee4b1380d17a3741f} (*) {'ef1': '*', 'user': 'test'} (glob) |
202 06be89dfe2ae447383f30a2984933352757b6fb4 0 {1334a80b33c3f9873edab728fbbcf500eab61d2e} (*) {'ef1': '0', 'user': 'test'} (glob) |
203 aa8f656bb307022172d2648be6fb65322f801225 a98b35e86cae589b61892127c5ec1c868e41d910 5410a2352fa3114883327beee89e3085eefac25c 0 (*) {'ef1': '*', 'user': 'test'} (glob) |
203 d2fe56e71366c2c5376c89960c281395062c0619 2d8abdb827cdf71ca477ef6985d7ceb257c53c1b 033b3f5ae73db67c10de938fb6f26b949aaef172 0 (*) {'ef1': '13', 'user': 'test'} (glob) |
204 10200229058723ce8d67f6612c1f6b4f73b1fe73 719157b217acc43d397369a448824ed4c7a302f2 0 (*) {'ef1': '*', 'user': 'test'} (glob) |
204 52149352b372d39b19127d5bd2d488b1b63f9f85 b434287e665ce757ee5463a965cb3d119ca9e893 0 (*) {'ef1': '9', 'user': 'test'} (glob) |
205 5d0c8b0f2d3e5e1ff95f93d7da2ba06650605ab5 0 {10200229058723ce8d67f6612c1f6b4f73b1fe73} (*) {'ef1': '*', 'user': 'test'} (glob) |
205 7a4fc25a48a5797bb069563854455aecf738d8f2 0 {52149352b372d39b19127d5bd2d488b1b63f9f85} (*) {'ef1': '0', 'user': 'test'} (glob) |
206 a98b35e86cae589b61892127c5ec1c868e41d910 286887947725085e03455d79649197feaef1eb9d 0 (*) {'ef1': '*', 'user': 'test'} (glob) |
206 2d8abdb827cdf71ca477ef6985d7ceb257c53c1b e2b4afde39803bd42bb1374b230fca1b1e8cc868 0 (*) {'ef1': '4', 'user': 'test'} (glob) |
207 5410a2352fa3114883327beee89e3085eefac25c 0b67cee46a7f2ad664f994027e7af95b36ae25fe 0 (*) {'ef1': '*', 'user': 'test'} (glob) |
207 033b3f5ae73db67c10de938fb6f26b949aaef172 bb5e4f6020c74e7961a51fda635ea9df9b04dda8 0 (*) {'ef1': '4', 'user': 'test'} (glob) |
208 719157b217acc43d397369a448824ed4c7a302f2 ced8fbcce3a7cd33f0e454d2cd63882ce1b6006b 73309fb98db840ba4ec5ad528346dc6ee0b39dcb 0 (*) {'ef1': '*', 'user': 'test'} (glob) |
208 b434287e665ce757ee5463a965cb3d119ca9e893 ead2066d1dbf14833fe1069df1b735e4e9468c40 1188c4216eba37f18a1de6558564601d00ff2143 0 (*) {'ef1': '13', 'user': 'test'} (glob) |
209 $ hg evolve --all |
209 $ hg evolve --all |
210 move:[10] split1 |
210 move:[10] split1 |
211 atop:[13] split4 |
211 atop:[13] split4 |
212 move:[11] split2 |
212 move:[11] split2 |
213 atop:[14] split1 |
213 atop:[14] split1 |
214 working directory is now at f200e612ac86 |
214 working directory is now at d74c6715e706 |
215 $ hg glog |
215 $ hg glog |
216 @ changeset: 15:f200e612ac86 |
216 @ changeset: 15:d74c6715e706 |
217 | tag: tip |
217 | tag: tip |
218 | user: test |
218 | user: test |
219 | date: Thu Jan 01 00:00:00 1970 +0000 |
219 | date: Thu Jan 01 00:00:00 1970 +0000 |
220 | summary: split2 |
220 | summary: split2 |
221 | |
221 | |
222 o changeset: 14:aec57822a8ff |
222 o changeset: 14:3f134f739075 |
223 | user: test |
223 | user: test |
224 | date: Thu Jan 01 00:00:00 1970 +0000 |
224 | date: Thu Jan 01 00:00:00 1970 +0000 |
225 | summary: split1 |
225 | summary: split1 |
226 | |
226 | |
227 o changeset: 13:73309fb98db8 |
227 o changeset: 13:1188c4216eba |
228 | user: test |
228 | user: other-test-user |
229 | date: Thu Jan 01 00:00:00 1970 +0000 |
229 | date: Thu Jan 01 00:00:00 1970 +0000 |
230 | summary: split4 |
230 | summary: split4 |
231 | |
231 | |
232 o changeset: 12:ced8fbcce3a7 |
232 o changeset: 12:ead2066d1dbf |
233 | parent: 1:37445b16603b |
233 | parent: 1:37445b16603b |
234 | user: test |
234 | user: other-test-user |
235 | date: Thu Jan 01 00:00:00 1970 +0000 |
235 | date: Thu Jan 01 00:00:00 1970 +0000 |
236 | summary: split3 |
236 | summary: split3 |
237 | |
237 | |
238 o changeset: 1:37445b16603b |
238 o changeset: 1:37445b16603b |
239 | user: test |
239 | user: test |
251 $ hg book bookA |
251 $ hg book bookA |
252 $ hg book bookB |
252 $ hg book bookB |
253 $ echo "changetofilea" > _a |
253 $ echo "changetofilea" > _a |
254 $ hg amend |
254 $ hg amend |
255 $ hg book |
255 $ hg book |
256 bookA 17:39d16b69c75d |
256 bookA 17:7a6b35779b85 |
257 * bookB 17:39d16b69c75d |
257 * bookB 17:7a6b35779b85 |
258 $ hg glog -r "14::" |
258 $ hg glog -r "14::" |
259 @ changeset: 17:39d16b69c75d |
259 @ changeset: 17:7a6b35779b85 |
260 | bookmark: bookA |
260 | bookmark: bookA |
261 | bookmark: bookB |
261 | bookmark: bookB |
262 | tag: tip |
262 | tag: tip |
263 | parent: 14:aec57822a8ff |
263 | parent: 14:3f134f739075 |
264 | user: test |
264 | user: test |
265 | date: Thu Jan 01 00:00:00 1970 +0000 |
265 | date: Thu Jan 01 00:00:00 1970 +0000 |
266 | summary: split2 |
266 | summary: split2 |
267 | |
267 | |
268 o changeset: 14:aec57822a8ff |
268 o changeset: 14:3f134f739075 |
269 | user: test |
269 | user: test |
270 ~ date: Thu Jan 01 00:00:00 1970 +0000 |
270 ~ date: Thu Jan 01 00:00:00 1970 +0000 |
271 summary: split1 |
271 summary: split1 |
272 |
272 |
273 $ hg split <<EOF |
273 $ hg split <<EOF |
295 examine changes to '_d'? [Ynesfdaq?] n |
295 examine changes to '_d'? [Ynesfdaq?] n |
296 |
296 |
297 created new head |
297 created new head |
298 Done splitting? [yN] y |
298 Done splitting? [yN] y |
299 $ hg glog -r "14::" |
299 $ hg glog -r "14::" |
300 @ changeset: 19:a2b5c9d9b362 |
300 @ changeset: 19:60ea019b0f8d |
301 | bookmark: bookA |
301 | bookmark: bookA |
302 | bookmark: bookB |
302 | bookmark: bookB |
303 | tag: tip |
303 | tag: tip |
304 | user: test |
304 | user: test |
305 | date: Thu Jan 01 00:00:00 1970 +0000 |
305 | date: Thu Jan 01 00:00:00 1970 +0000 |
306 | summary: split6 |
306 | summary: split6 |
307 | |
307 | |
308 o changeset: 18:bf3402785e72 |
308 o changeset: 18:2c7a2e53f23b |
309 | parent: 14:aec57822a8ff |
309 | parent: 14:3f134f739075 |
310 | user: test |
310 | user: test |
311 | date: Thu Jan 01 00:00:00 1970 +0000 |
311 | date: Thu Jan 01 00:00:00 1970 +0000 |
312 | summary: split5 |
312 | summary: split5 |
313 | |
313 | |
314 o changeset: 14:aec57822a8ff |
314 o changeset: 14:3f134f739075 |
315 | user: test |
315 | user: test |
316 ~ date: Thu Jan 01 00:00:00 1970 +0000 |
316 ~ date: Thu Jan 01 00:00:00 1970 +0000 |
317 summary: split1 |
317 summary: split1 |
318 |
318 |
319 $ hg book |
319 $ hg book |
320 bookA 19:a2b5c9d9b362 |
320 bookA 19:60ea019b0f8d |
321 * bookB 19:a2b5c9d9b362 |
321 * bookB 19:60ea019b0f8d |
322 |
322 |
323 Lastest revision is selected if multiple are given to -r |
323 Lastest revision is selected if multiple are given to -r |
324 $ hg split -r "desc(_a)::" |
324 $ hg split -r "desc(_a)::" |
325 (leaving bookmark bookB) |
325 (leaving bookmark bookB) |
326 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
326 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
335 > [experimental] |
335 > [experimental] |
336 > evolution=createmarkers |
336 > evolution=createmarkers |
337 > evolutioncommands=split |
337 > evolutioncommands=split |
338 > EOF |
338 > EOF |
339 $ hg split -r "desc(split3)" |
339 $ hg split -r "desc(split3)" |
340 abort: cannot split commit: ced8fbcce3a7 not a head |
340 abort: cannot split commit: ead2066d1dbf not a head |
341 [255] |
341 [255] |
342 |
342 |
343 Changing evolution level to createmarkers |
343 Changing evolution level to createmarkers |
344 $ echo "[experimental]" >> $HGRCPATH |
344 $ echo "[experimental]" >> $HGRCPATH |
345 $ echo "evolution=createmarkers" >> $HGRCPATH |
345 $ echo "evolution=createmarkers" >> $HGRCPATH |
383 marked working directory as branch new-branch |
383 marked working directory as branch new-branch |
384 (branches are permanent and global, did you want a bookmark?) |
384 (branches are permanent and global, did you want a bookmark?) |
385 $ hg commit -m "empty" |
385 $ hg commit -m "empty" |
386 $ hg split |
386 $ hg split |
387 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
387 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
388 |
|
389 Check that split keeps the right topic |
|
390 |
|
391 $ hg up -r tip |
|
392 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
393 |
|
394 Add topic to the hgrc |
|
395 |
|
396 $ echo "[extensions]" >> $HGRCPATH |
|
397 $ echo "topic=$(echo $(dirname $TESTDIR))/hgext3rd/topic/" >> $HGRCPATH |
|
398 $ hg topic mytopic |
|
399 $ echo babar > babar |
|
400 $ echo celeste > celeste |
|
401 $ hg add babar celeste |
|
402 $ hg commit -m "Works on mytopic" babar celeste |
|
403 $ hg summary |
|
404 parent: 21:615c369f47f0 tip |
|
405 Works on mytopic |
|
406 branch: new-branch |
|
407 commit: 2 unknown (clean) |
|
408 update: (current) |
|
409 phases: 9 draft |
|
410 topic: mytopic |
|
411 |
|
412 Split it |
|
413 |
|
414 $ hg split << EOF |
|
415 > Y |
|
416 > Y |
|
417 > N |
|
418 > Y |
|
419 > Y |
|
420 > Y |
|
421 > EOF |
|
422 0 files updated, 0 files merged, 2 files removed, 0 files unresolved |
|
423 adding babar |
|
424 adding celeste |
|
425 diff --git a/babar b/babar |
|
426 new file mode 100644 |
|
427 examine changes to 'babar'? [Ynesfdaq?] Y |
|
428 |
|
429 @@ -0,0 +1,1 @@ |
|
430 +babar |
|
431 record change 1/2 to 'babar'? [Ynesfdaq?] Y |
|
432 |
|
433 diff --git a/celeste b/celeste |
|
434 new file mode 100644 |
|
435 examine changes to 'celeste'? [Ynesfdaq?] N |
|
436 |
|
437 Done splitting? [yN] Y |
|
438 diff --git a/celeste b/celeste |
|
439 new file mode 100644 |
|
440 examine changes to 'celeste'? [Ynesfdaq?] Y |
|
441 |
|
442 @@ -0,0 +1,1 @@ |
|
443 +celeste |
|
444 record this change to 'celeste'? [Ynesfdaq?] Y |
|
445 |
|
446 no more change to split |
|
447 |
|
448 Check that the topic is still here |
|
449 |
|
450 $ hg log -r "tip~1::" |
|
451 changeset: 22:f879ab83f991 |
|
452 branch: new-branch |
|
453 topic: mytopic |
|
454 parent: 20:89e64a2c68b3 |
|
455 user: test |
|
456 date: Thu Jan 01 00:00:00 1970 +0000 |
|
457 summary: split7 |
|
458 |
|
459 changeset: 23:db75dbc1a3a6 |
|
460 branch: new-branch |
|
461 tag: tip |
|
462 topic: mytopic |
|
463 user: test |
|
464 date: Thu Jan 01 00:00:00 1970 +0000 |
|
465 summary: split8 |
|
466 |
|
467 $ hg topic |
|
468 * mytopic |