[darcs-users] Conflict marking

Ian Lynagh igloo at earth.li
Wed Nov 5 13:14:43 UTC 2008


On Wed, Nov 05, 2008 at 03:06:11AM +0000, Ian Lynagh wrote:
> 
> If we have a repository
>     As
> then we can commute this to
>     Bs Cs
> where:
> * everything in Cs is a conflictor, and
> * Bs cannot be commuted to
>       Ds E
>   where E is a conflictor.
> 
> Let Fs^ be the effect of Cs. Then Bs can be commuted to
>     Gs Fs
> (proof by contradiction: If a patch in Gs depended on something in Fs,
> then whatever conflicted with that F would have also conflicted with
> that G).

Oh, this is wrong.

Suppose we have AB + AC (where B and C both depend on A, and they
conflict with each other) = ABC', and we record a resolution patch D,
ABC'D. Then we pull in E which conflicts with A, ABC'DE'.

Then we get Bs Cs = ABC'D E'.
We have Fs = AD, but we cannot commute A past BC' (which has no net
effect).

Fortunately, we don't actually need to do this, because:

> Note that in order to find the Fs fork we don't need to split Cs into
> Gs Fs, we can just get Fs from the effect of the conflictors.

so it doesn't actually matter.


Thanks
Ian



More information about the darcs-users mailing list