|
From: | Justin Patrin |
Subject: | Re: [Monotone-devel] Deterministic *-merge |
Date: | Fri, 12 Jan 2007 10:01:16 -0800 |
On 1/12/07, Nathaniel J. Smith <address@hidden> wrote: [snip]
Example 2 (super bonus edition) =============================== A more wacky example is: a / \ b* b* / \ / \ c* b c* Here we have two people who independently set the value to b, which then makes an accidental clean merge. Then two other people come along and independently overwrite the b's with c's. Because *-merge makes the decision to be conservative about implicit convergence, if either of the c's is merged with the b, it generates a conflict -- because someone made a decision to create the b in two different contexts, but the c came from someone overruling that decision in only one context:
Forgive my possible ignorance, but if 2 people independently make the same changes to a revision and commit/push them on their own doesn't this end up being the same node in the graph? The way I understand it if 2 people make the same change simultaneously in 2 different databases then sync with each other that the only actual thing being synced would be an author cert on the revision, leaving you with 1 revision, not 2. Or am I misunderstanding the "two people independently set the value to b" remark above? According to my understanding this graph would just be: a | b | c since no merging of the 2 independent creations of b is necessary. -- Justin Patrin
[Prev in Thread] | Current Thread | [Next in Thread] |