[darcs-devel] Activation Patches

Ganesh Sittampalam ganesh at earth.li
Mon Jun 4 13:26:03 PDT 2007


On Wed, 30 May 2007, Jason Dagit wrote:

> As you may know, I'm part of an effort to improve conflict handling in
> darcs.  We have come up with a plan that allows users to cancel and
> activate patches (more on this later).  Implementing activation
> patches is the first step in this direction.

As they stand, activation patches don't seem very different from merges,
conflictors and the like. But I guess cancel patches will answer this
objection. Will the eventual structure be a graph or a tree?

> 2)  An activation patch is its own inverse.  Since the activation
> patch does not modify the repository state, it should be clear that
> the patch is its own inverse.

I'm not convinced by this, or the later justification that it's the
simplest of many possible inverses.

An activation patch doesn't commute with the patch it activates, but does
commute with all other patches. Does this include the inverse of the patch
it activates?

For example, A_A_ seems to be a valid patch sequence. Presumably I can
invert it; if _A_^ = _A_, this is _A_A^. Now if _A_ commutes with every
other patch than A, I can make this into A^_A_ (perhaps with some changes
to _A_).  Take inverses again and I've got _A_A, and so I've commuted it
past A.

> Suppose we have patches, A, B, C, D and E which all commute with each
> other.  Then suppose we have this sequence of patches:
> (_A_BCD)E

If B,C and D commute with A, how did we get this activation patch in the 
first place? You say above that this notation means that B,C and D don't 
commute with A.

Cheers,

Ganesh


More information about the darcs-devel mailing list