267 |/ |
267 |/ |
268 | o 1: 'B' |
268 | o 1: 'B' |
269 |/ |
269 |/ |
270 o 0: 'A' |
270 o 0: 'A' |
271 |
271 |
272 |
272 $ cd .. |
|
273 |
|
274 Test for revset |
|
275 |
|
276 We need a bit different graph |
|
277 All destination are B |
|
278 |
|
279 $ hg init ah |
|
280 $ cd ah |
|
281 $ hg unbundle $TESTDIR/bundles/rebase-revset.hg |
|
282 adding changesets |
|
283 adding manifests |
|
284 adding file changes |
|
285 added 9 changesets with 9 changes to 9 files (+2 heads) |
|
286 (run 'hg heads' to see heads, 'hg merge' to merge) |
|
287 $ hg tglog |
|
288 o 8: 'I' |
|
289 | |
|
290 o 7: 'H' |
|
291 | |
|
292 o 6: 'G' |
|
293 | |
|
294 | o 5: 'F' |
|
295 | | |
|
296 | o 4: 'E' |
|
297 |/ |
|
298 o 3: 'D' |
|
299 | |
|
300 o 2: 'C' |
|
301 | |
|
302 | o 1: 'B' |
|
303 |/ |
|
304 o 0: 'A' |
|
305 |
|
306 $ cd .. |
|
307 |
|
308 |
|
309 Simple case with keep: |
|
310 |
|
311 Source on have two descendant heads but ask for one |
|
312 |
|
313 $ hg clone -q -u . ah ah1 |
|
314 $ cd ah1 |
|
315 $ hg rebase -r '2::8' -d 1 |
|
316 abort: can't remove original changesets with unrebased descendants |
|
317 (use --keep to keep original changesets) |
|
318 [255] |
|
319 $ hg rebase -r '2::8' -d 1 --keep |
|
320 $ hg tglog |
|
321 @ 13: 'I' |
|
322 | |
|
323 o 12: 'H' |
|
324 | |
|
325 o 11: 'G' |
|
326 | |
|
327 o 10: 'D' |
|
328 | |
|
329 o 9: 'C' |
|
330 | |
|
331 | o 8: 'I' |
|
332 | | |
|
333 | o 7: 'H' |
|
334 | | |
|
335 | o 6: 'G' |
|
336 | | |
|
337 | | o 5: 'F' |
|
338 | | | |
|
339 | | o 4: 'E' |
|
340 | |/ |
|
341 | o 3: 'D' |
|
342 | | |
|
343 | o 2: 'C' |
|
344 | | |
|
345 o | 1: 'B' |
|
346 |/ |
|
347 o 0: 'A' |
|
348 |
|
349 |
|
350 $ cd .. |
|
351 |
|
352 Base on have one descendant heads we ask for but common ancestor have two |
|
353 |
|
354 $ hg clone -q -u . ah ah2 |
|
355 $ cd ah2 |
|
356 $ hg rebase -r '3::8' -d 1 |
|
357 abort: can't remove original changesets with unrebased descendants |
|
358 (use --keep to keep original changesets) |
|
359 [255] |
|
360 $ hg rebase -r '3::8' -d 1 --keep |
|
361 $ hg tglog |
|
362 @ 12: 'I' |
|
363 | |
|
364 o 11: 'H' |
|
365 | |
|
366 o 10: 'G' |
|
367 | |
|
368 o 9: 'D' |
|
369 |\ |
|
370 | | o 8: 'I' |
|
371 | | | |
|
372 | | o 7: 'H' |
|
373 | | | |
|
374 | | o 6: 'G' |
|
375 | | | |
|
376 | | | o 5: 'F' |
|
377 | | | | |
|
378 | | | o 4: 'E' |
|
379 | | |/ |
|
380 | | o 3: 'D' |
|
381 | |/ |
|
382 | o 2: 'C' |
|
383 | | |
|
384 o | 1: 'B' |
|
385 |/ |
|
386 o 0: 'A' |
|
387 |
|
388 |
|
389 $ cd .. |
|
390 |
|
391 rebase subset |
|
392 |
|
393 $ hg clone -q -u . ah ah3 |
|
394 $ cd ah3 |
|
395 $ hg rebase -r '3::7' -d 1 |
|
396 abort: can't remove original changesets with unrebased descendants |
|
397 (use --keep to keep original changesets) |
|
398 [255] |
|
399 $ hg rebase -r '3::7' -d 1 --keep |
|
400 $ hg tglog |
|
401 @ 11: 'H' |
|
402 | |
|
403 o 10: 'G' |
|
404 | |
|
405 o 9: 'D' |
|
406 |\ |
|
407 | | o 8: 'I' |
|
408 | | | |
|
409 | | o 7: 'H' |
|
410 | | | |
|
411 | | o 6: 'G' |
|
412 | | | |
|
413 | | | o 5: 'F' |
|
414 | | | | |
|
415 | | | o 4: 'E' |
|
416 | | |/ |
|
417 | | o 3: 'D' |
|
418 | |/ |
|
419 | o 2: 'C' |
|
420 | | |
|
421 o | 1: 'B' |
|
422 |/ |
|
423 o 0: 'A' |
|
424 |
|
425 |
|
426 $ cd .. |
|
427 |
|
428 rebase subset with multiple head |
|
429 |
|
430 $ hg clone -q -u . ah ah4 |
|
431 $ cd ah4 |
|
432 $ hg rebase -r '3::(7+5)' -d 1 |
|
433 abort: can't remove original changesets with unrebased descendants |
|
434 (use --keep to keep original changesets) |
|
435 [255] |
|
436 $ hg rebase -r '3::(7+5)' -d 1 --keep |
|
437 $ hg tglog |
|
438 @ 13: 'H' |
|
439 | |
|
440 o 12: 'G' |
|
441 | |
|
442 | o 11: 'F' |
|
443 | | |
|
444 | o 10: 'E' |
|
445 |/ |
|
446 o 9: 'D' |
|
447 |\ |
|
448 | | o 8: 'I' |
|
449 | | | |
|
450 | | o 7: 'H' |
|
451 | | | |
|
452 | | o 6: 'G' |
|
453 | | | |
|
454 | | | o 5: 'F' |
|
455 | | | | |
|
456 | | | o 4: 'E' |
|
457 | | |/ |
|
458 | | o 3: 'D' |
|
459 | |/ |
|
460 | o 2: 'C' |
|
461 | | |
|
462 o | 1: 'B' |
|
463 |/ |
|
464 o 0: 'A' |
|
465 |
|
466 |
|
467 $ cd .. |
|
468 |
|
469 More advanced tests |
|
470 |
|
471 rebase on ancestor with revset |
|
472 |
|
473 $ hg clone -q -u . ah ah5 |
|
474 $ cd ah5 |
|
475 $ hg rebase -r '6::' -d 2 |
|
476 saved backup bundle to $TESTTMP/ah5/.hg/strip-backup/3d8a618087a7-backup.hg |
|
477 $ hg tglog |
|
478 @ 8: 'I' |
|
479 | |
|
480 o 7: 'H' |
|
481 | |
|
482 o 6: 'G' |
|
483 | |
|
484 | o 5: 'F' |
|
485 | | |
|
486 | o 4: 'E' |
|
487 | | |
|
488 | o 3: 'D' |
|
489 |/ |
|
490 o 2: 'C' |
|
491 | |
|
492 | o 1: 'B' |
|
493 |/ |
|
494 o 0: 'A' |
|
495 |
|
496 $ cd .. |
|
497 |
|
498 |
|
499 rebase with multiple root. |
|
500 We rebase E and G on B |
|
501 We would expect heads are I, F if it was supported |
|
502 |
|
503 $ hg clone -q -u . ah ah6 |
|
504 $ cd ah6 |
|
505 $ hg rebase -r '(4+6)::' -d 1 |
|
506 abort: can't rebase multiple roots |
|
507 [255] |
|
508 $ cd .. |