[darcs-devel] Example Conflicts

Ian Lynagh igloo at earth.li
Tue Jul 31 17:58:29 PDT 2007


Hi all,

Some further questions:

On Tue, Jul 31, 2007 at 05:15:19PM -0700, Jason Dagit wrote:
> 
> Suppose you have 3 patches, A, B and C.  A and B conflict and C depends on A.
> 
> You merge A and B by choosing to cancel A in favor of B.  Now you want
> to pull C into  your repository.
> 
> I was explaining it like thus:
> First you get X[](A)X[](B)
> Now you cancel A, so remerge brings B back to life.  So then you have:
> X[](A) B (Cancel A)

Am I right in thinking that there is only 1 "cancel A" patch, so for
example if you and I both cancel A and then pull from each other there
is no conflict?

And the "cancel A" patch doesn't have any sort of reference to B in it?

If I unpull B then does A remain cancelled?

What UI do you have in mind for cancelling patches?

> Definition:
> The pristine state of the repository consists of the set of active
> changes that do not conflict with any other active changes.
> 
> The pristine state of the repo:
> { C }
> Or should this be empty because C depends on A which has a conflict?

{ C } doesn't make sense, as you can't have C in a repo state without
also having A.

I think you want:

Definition:
The pristine state of the repository consists of the set of active
changes such that both:
* the change does not conflict with any other active changes
* all the dependencies of the patch is in the pristine state.


Thanks
Ian



More information about the darcs-devel mailing list