Differences between revisions 1 and 2
Revision 1 as of 2010-06-10 12:07:43
Size: 956
Comment:
Revision 2 as of 2010-06-10 12:09:22
Size: 934
Comment:
Deletions are marked like this. Additions are marked like this.
Line 21: Line 21:
 2. Then, send changesets on dead branches if they descend from what is now remote heads.  2. Then, send changesets descending from what is now remote heads.

Poisoned Changesets

Status: draft

1. Definitions

We will use the following definitions:

poisoned changeset

a changeset with poisoned=1 in its extra dict.

dead head
a poisoned changeset that is also a head.
dead changeset
a changeset from which you can only reach dead heads.

2. Rules for Push

When pushing changesets, the following two rules are observed:

  1. First, send changesets that are not on a dead branch.
  2. Then, send changesets descending from what is now remote heads.

The discovery protocols gives us the heads of the common set of nodes. From these we can compute the changesets that are not on a dead branch (rule 1). We can then look at the remaining heads among the nodes in the common set and push descendants of these.

No new information is neede by this protocol, everything can be computed locally from information about the common set of nodes.

PoisonedChangesetsPlan (last edited 2015-06-12 08:45:14 by Pierre-YvesDavid)