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.