docs/sharing.rst
changeset 4621 8784dfc6537c
parent 4620 a05bfdf372fb
child 4920 d1066fb2c95a
equal deleted inserted replaced
4620:a05bfdf372fb 4621:8784dfc6537c
   511 In the user guide, we saw examples of *orphan* changesets, which are
   511 In the user guide, we saw examples of *orphan* changesets, which are
   512 the most common type of unstable changeset. (Recall that a
   512 the most common type of unstable changeset. (Recall that a
   513 non-obsolete changeset with obsolete ancestors is an orphan.)
   513 non-obsolete changeset with obsolete ancestors is an orphan.)
   514 
   514 
   515 Two other types of instability can happen: *content-divergent* and
   515 Two other types of instability can happen: *content-divergent* and
   516 *bumped* changesets. Both are more likely with shared mutable
   516 *phase-divergent* changesets. Both are more likely with shared mutable
   517 history, especially mutable history shared by multiple developers.
   517 history, especially mutable history shared by multiple developers.
   518 
   518 
   519 Setting up
   519 Setting up
   520 ==========
   520 ==========
   521 
   521 
   684 Figure 7 shows what just happened to Bob's repository: changeset
   684 Figure 7 shows what just happened to Bob's repository: changeset
   685 2:e011 is now public, so it can't be obsolete. When that changeset was
   685 2:e011 is now public, so it can't be obsolete. When that changeset was
   686 obsolete, it made perfect sense for it to have a successor, namely
   686 obsolete, it made perfect sense for it to have a successor, namely
   687 Bob's amendment of Alice's fix (changeset 4:fe88). But it's illogical
   687 Bob's amendment of Alice's fix (changeset 4:fe88). But it's illogical
   688 for a public changeset to have a successor, so 4:fe88 is unstable:
   688 for a public changeset to have a successor, so 4:fe88 is unstable:
   689 it has become *bumped*.
   689 it has become *phase-divergent*.
   690 
   690 
   691   [figure SG07: 2:e011 now public not obsolete, 4:fe88 now bumped]
   691   [figure SG07: 2:e011 now public not obsolete, 4:fe88 now phase-divergent]
   692 
   692 
   693 As usual when there's trouble in your repository, the solution is to
   693 As usual when there's trouble in your repository, the solution is to
   694 evolve it::
   694 evolve it::
   695 
   695 
   696   $ hg evolve --all
   696   $ hg evolve --all
   697 
   697 
   698 Figure 8 illustrates Bob's repository after evolving away the bumped
   698 Figure 8 illustrates Bob's repository after evolving away the phase-divergent
   699 changeset. Ignoring the obsolete changesets, Bob now has a nice,
   699 changeset. Ignoring the obsolete changesets, Bob now has a nice,
   700 clean, simple history. His amendment of Alice's bug fix lives on, as
   700 clean, simple history. His amendment of Alice's bug fix lives on, as
   701 changeset 5:227d—albeit with a software-generated commit message. (Bob
   701 changeset 5:227d—albeit with a software-generated commit message. (Bob
   702 should probably amend that changeset to improve the commit message.)
   702 should probably amend that changeset to improve the commit message.)
   703 But the important thing is that his repository no longer has any
   703 But the important thing is that his repository no longer has any
   704 unstable changesets, thanks to ``evolve``.
   704 unstable changesets, thanks to ``evolve``.
   705 
   705 
   706   [figure SG08: 5:227d is new, formerly bumped changeset 4:fe88 now hidden]
   706   [figure SG08: 5:227d is new, formerly phase-divergent changeset 4:fe88 now hidden]
   707 
   707 
   708 Conclusion
   708 Conclusion
   709 ----------
   709 ----------
   710 
   710 
   711 Mutable history is a powerful tool. Like a sharp knife, an experienced
   711 Mutable history is a powerful tool. Like a sharp knife, an experienced