monotone-devel
[Top][All Lists]
Advanced

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

Re: [Monotone-devel] What are rosters?


From: William Uther
Subject: Re: [Monotone-devel] What are rosters?
Date: Mon, 20 Aug 2007 16:51:06 +1000


On 20/08/2007, at 3:46 PM, Brian May wrote:


"William" == William Uther <address@hidden> writes:

    William> - I think this procedure is equivalent to mark-merge:
William> - If a node is in the same state on both sides of a merge then it
    William> is in that state in the result.  Otherwise,
William> - If a node is in different states on either side of a merge then William> we check the uncommon ancestors (UA) on each side of the merge for William> marks. If one side has a mark and the other side doesn't, then that William> side wins cleanly. If both sides have a mark then there is a
    William> conflict.
William> - If the nodes are in a different state on each side of the William> merge, but neither set of uncommon ancestors has a mark, then we've
    William> got an invariant failure.

Sounds good to me, so far.

Heh, Unfortunately, it no longer sounds as good to me. I managed to find some examples that concern me. I haven't given up on it yet, but it may need some tweaks.

I'm going to label the merge above 'uncommon ancestor' merge. It is a quick approximation of mark merge, and I may be able to make it equivalent enough for boolean merge.

How would you deal with conflicts?

Complain to the user. Tell them to either delete the file from one side, or add it to the other, then merge again.

Just to confirm I have understood this correctly: would this mean it
is possible to undelete a file that was deleted?

Yeah - but don't get too excited. I'm pretty busy at the moment and this is pretty core stuff. I want to be somewhat cautious. Mistakes in this code are easy, and lead to annoying, subtle, bugs.

Cheers,

Will        :-}





reply via email to

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