90 |
90 |
91 (If you prefer a calculus metaphor to set theory, it might help to |
91 (If you prefer a calculus metaphor to set theory, it might help to |
92 think of the traditional parent/child DAG as the first derivative of |
92 think of the traditional parent/child DAG as the first derivative of |
93 your source code, and the obsolescence DAG as the second derivative.) |
93 your source code, and the obsolescence DAG as the second derivative.) |
94 |
94 |
95 Unstable changesets (orphan, bumped, divergent) |
95 Unstable changesets (orphan, bumped, content-divergent) |
96 ----------------------------------------------- |
96 ------------------------------------------------------- |
97 |
97 |
98 Evolving history can introduce problems that need to be solved. For |
98 Evolving history can introduce problems that need to be solved. For |
99 example, if you prune a changeset *P* but not its descendants, those |
99 example, if you prune a changeset *P* but not its descendants, those |
100 descendants are now on thin ice. To push a changeset to another |
100 descendants are now on thin ice. To push a changeset to another |
101 repository *R*, all of its ancestors must be present in *R* or pushed |
101 repository *R*, all of its ancestors must be present in *R* or pushed |
127 passenger who is left behind in the airport terminal has been |
127 passenger who is left behind in the airport terminal has been |
128 "bumped".) |
128 "bumped".) |
129 |
129 |
130 The third sort of trouble is when Alice and Bob both amend the same |
130 The third sort of trouble is when Alice and Bob both amend the same |
131 changeset *C* to have different successors. When this happens, the |
131 changeset *C* to have different successors. When this happens, the |
132 successors are both called *divergent* (unless one of them is in |
132 successors are both called *content-divergent* (unless one of them is in |
133 public phase; only mutable changesets are divergent). |
133 public phase; only mutable changesets are content-divergent). |
134 |
134 |
135 The collective term for orphan, bumped, and divergent changeset is |
135 The collective term for orphan, bumped, and content-divergent changeset is |
136 *unstable*:: |
136 *unstable*:: |
137 |
137 |
138 unstable = orphan ∪ bumped ∪ divergent |
138 unstable = orphan ∪ bumped ∪ content-divergent |
139 |
139 |
140 It is possible for a changeset to be in any of the unstable categories |
140 It is possible for a changeset to be in any of the unstable categories |
141 at the same time: it might be an orphan and divergent, or bumped and |
141 at the same time: it might be an orphan and content-divergent, or bumped and |
142 divergent, or whatever. |
142 content-divergent, or whatever. |
143 |
143 |
144 [diagram: Venn diagram of unstable changesets, showing overlap] |
144 [diagram: Venn diagram of unstable changesets, showing overlap] |
145 |
145 |
146 The presence of unstable changesets indicates the need to run ``hg |
146 The presence of unstable changesets indicates the need to run ``hg |
147 evolve``. |
147 evolve``. |