Changesets Evolution - Obsolescence Markers Cycles

/!\ This page is intended for developer

Creating Cycles

Obsolescence markers can be created and added in any order, so it is possible for two (or more) markers to says:

That makes both A and B obsolete, and there is not clear successors to either A or B.

=== Distributed Unintentional Creation ==

If two users Alice and Bob creates similar changesets A and B and end up exchanging them. They can each decides to mark their version obsoleted by the other ( A ← B; B ← A). This will happen in a distributed way, in their own repository without communication between the two at the time it happens. The cycle will only appears when both data end up in the same place through exchange.

Using explicit prune

User could locally create cycle using hg prune B --successors A. They could either be aware of the cycle creation or do that without realizing they will create a cycle

Using explicit prune

To be completed

Cycle as a way to revive changesets with the same hash

JunWu has advocated for "hash preserving" way to disable markers on a changesets:

/!\ please details here

CategoryDeveloper CategoryEvolution

CEDCycles (last edited 2017-03-13 18:50:35 by Pierre-YvesDavid)