[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Monotone-devel] Re: [Revctrl] improvements to *-merge
From: |
Oren Ben-Kiki |
Subject: |
Re: [Monotone-devel] Re: [Revctrl] improvements to *-merge |
Date: |
Sat, 3 Sep 2005 11:40:04 +0300 |
User-agent: |
KMail/1.8.1 |
On Friday 02 September 2005 21:48, Bram Cohen wrote:
> First of all though, there's a point I have to get out of the way.
> Just how does one pronounce 'precise-*-merge'? Star-merge is already
> taken as a term, and asterisk-merge just doesn't roll off the tongue
> in quite the same way.
Precis(e)tar-r-merge? :-)
> This approach is entirely based on values, not graph node
There's a subtlety involved:
a1
/ \
d1 b1
\ / \
b? c1
b? would have been a conflict, resolved in favor of b. So the rule is:
"In case of a conflict resolved for one of the values, you keep the
winner's generational number."
On the other hand,
a1
/ \
b1 a1
\ /
a2?
Here there would have been a clean merge to b1, overridden for a, so the
rule is:
"In case a clean merge is overridden for the losing value, you increment
the generation number."
It sounds like a potential divergence between the programmer's intent
and the algorithm's interpretation. It does seem to work however... Any
rationale?
Then there's implicit undo :-) The whole approach philosophically
opposes implicit undo, since the "undone" generation number _must_ be
higher than the original, causing conflicts. I really don't see how you
could even approach trying to make implicit undo work...
Have fun,
Oren Ben-Kiki