comparison docs/user-guide.rst @ 4920:d1066fb2c95a stable

docs: remove --all from hg evolve, since it's been the default for some time
author Anton Shestakov <av6@dwimlabs.net>
date Sat, 26 Oct 2019 22:44:06 +0700
parents 8beb44234b33
children
comparison
equal deleted inserted replaced
4919:8beb44234b33 4920:d1066fb2c95a
401 still visible, even though it is obsolete. Obsolete changesets with 401 still visible, even though it is obsolete. Obsolete changesets with
402 non-obsolete descendants are not hidden. 402 non-obsolete descendants are not hidden.
403 403
404 The fix is to *evolve* history:: 404 The fix is to *evolve* history::
405 405
406 $ hg evolve --all 406 $ hg evolve
407 407
408 This is a separate step, not automatically part of ``hg amend``, 408 This is a separate step, not automatically part of ``hg amend``,
409 because there might be conflicts. If your amended changeset modifies a 409 because there might be conflicts. If your amended changeset modifies a
410 file that one of its descendants also modified, Mercurial has to fire 410 file that one of its descendants also modified, Mercurial has to fire
411 up your merge tool to resolve the conflict. More importantly, you have 411 up your merge tool to resolve the conflict. More importantly, you have
416 revisions (11-13) are obsolete and hidden. Their successor revisions 416 revisions (11-13) are obsolete and hidden. Their successor revisions
417 (14-16) replace them. 417 (14-16) replace them.
418 418
419 .. figure:: figures/figure-ug07.svg 419 .. figure:: figures/figure-ug07.svg
420 420
421 Figure 7: evolve your repository (``hg evolve --all``) to take care 421 Figure 7: evolve your repository (``hg evolve``) to take care
422 of instability. Orphan changesets become obsolete, and are 422 of instability. Orphan changesets become obsolete, and are
423 replaced by successors just like the amended changeset was. 423 replaced by successors just like the amended changeset was.
424 424
425 Example 8: Prune an older changeset 425 Example 8: Prune an older changeset
426 =================================== 426 ===================================
448 of the pruned changeset are now orphans. 448 of the pruned changeset are now orphans.
449 449
450 As before, the solution to orphan changesets is to evolve your 450 As before, the solution to orphan changesets is to evolve your
451 repository:: 451 repository::
452 452
453 $ hg evolve --all 453 $ hg evolve
454 454
455 This rebases revision 20 on top of 18 as the new revision 21, leaving 455 This rebases revision 20 on top of 18 as the new revision 21, leaving
456 19 and 20 obsolete and hidden: 456 19 and 20 obsolete and hidden:
457 457
458 .. figure:: figures/figure-ug09.svg 458 .. figure:: figures/figure-ug09.svg
459 459
460 Figure 9: once again, ``hg evolve --all`` takes care of instability. 460 Figure 9: once again, ``hg evolve`` takes care of instability.
461 461
462 Example 9: Uncommit files from an older changeset (discard changes) 462 Example 9: Uncommit files from an older changeset (discard changes)
463 ======================================================================= 463 =======================================================================
464 464
465 As in example 5, let's say you accidentally commit some unrelated 465 As in example 5, let's say you accidentally commit some unrelated
489 489
490 In this case, the change to ``file2.c`` was a temporary debugging 490 In this case, the change to ``file2.c`` was a temporary debugging
491 hack, so we can discard it and immediately evolve the instability away:: 491 hack, so we can discard it and immediately evolve the instability away::
492 492
493 $ hg revert file2.c 493 $ hg revert file2.c
494 $ hg evolve --all 494 $ hg evolve
495 move:[23] fix bug 67 495 move:[23] fix bug 67
496 atop:[24] fix bug 53 496 atop:[24] fix bug 53
497 497
498 Figure 10 illustrates the whole process. 498 Figure 10 illustrates the whole process.
499 499
543 separately will soon result in a two-headed repository. 543 separately will soon result in a two-headed repository.
544 544
545 This is where things get tricky. As usual when a repository has 545 This is where things get tricky. As usual when a repository has
546 orphan changesets, we want to evolve it:: 546 orphan changesets, we want to evolve it::
547 547
548 $ hg evolve --all 548 $ hg evolve
549 549
550 The problem is that ``hg evolve`` rebases revision 27 onto revision 550 The problem is that ``hg evolve`` rebases revision 27 onto revision
551 28, creating 30 (the successor of 27). This is entirely logical: 27 551 28, creating 30 (the successor of 27). This is entirely logical: 27
552 was the child of 26, and 26's successor is 28. So of course 27's 552 was the child of 26, and 26's successor is 28. So of course 27's
553 successor (30) should be the child of 26's successor (28). 553 successor (30) should be the child of 26's successor (28).