monotone-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Monotone-devel] deterministic mark merge question


From: Timothy Brownawell
Subject: Re: [Monotone-devel] deterministic mark merge question
Date: Sun, 18 Nov 2007 10:37:03 -0600

On Sun, 2007-11-18 at 23:47 +1100, William Uther wrote:
> Hi,
>    I have a quick question about deterministic mark merge.  I'm a  
> little confused about when something is decided to be a conflict.  In  
> particular, how would the following examples work out?

The question is "do all nodes in the mark set have the same value?".

> I've put ?s on the nodes that I'm interested in.
> 
> 
>      a*    b*   c*
>       \   /     |
>        \ /      |
>         ?       |
>        / \     /
>       /   \   /
>      d*     ?
>       \    /
>        \  /
>         ?

      a*<1> b*<2> c*<3>
       \   /      |
        \ /       |
        {a,b}<4>  |
        /   \    /
       /     \  /
      d*<5>  {a,b,c}<6>
       \     /
        \   /
        {c,d}<7>

The mark set for 4 is {1,2}. The values aren't all the same, so
conflict.

The mark set for 6 is {1,2,3}. This is another conflict.

The mark set for 7 is {3,5}. 1 and 2 have disappeared because they're
ancestors of 5. The values in the mark set still don't all match, so
conflict.

>      a*    b*   c*
>       \   /     |
>        \ /      |
>         ?       |
>        / \     /
>       /   \   /
>      c*     ?
>       \    /
>        \  /
>         ?

      a*<1> b*<2> c*<3>
       \   /      |
        \ /       |
        {a,b}<4>  |
        /   \    /
       /     \  /
      c*<5>  {a,b,c}<6>
       \     /
        \   /
         c<7>

The mark sets here all have the same nodes as before. But this time, the
mark set of 7 (which is {3,5}) all have the same value (which is c).
Since all the values are the same, node 7 has value c instead of being a
conflict.

> I've been working with the version where conflicts are sets of values,  
> but the version where conflicts are just conflicts is also interesting.

The question is whether a conflicted node is considered to be a conflict
between the values in its mark set, or just undefined. Since merging
only depends on the marked nodes, and since conflicted nodes can't be
marked, there's really no practical difference here beyond the UI for
presenting conflicts to the user.

-- 
Timothy

Free (experimental) public monotone hosting: http://mtn-host.prjek.net





reply via email to

[Prev in Thread] Current Thread [Next in Thread]