monotone-devel
[Top][All Lists]
Advanced

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

Re: [Monotone-devel] resolving name conflicts; file suturing vs drop


From: Stephen Leake
Subject: Re: [Monotone-devel] resolving name conflicts; file suturing vs drop
Date: Fri, 09 May 2008 03:36:55 -0400
User-agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/22.1 (windows-nt)

William Uther <address@hidden> writes:

> On 08/05/2008, at 8:45 PM, Markus Schiltknecht wrote:
>
>>
>>  A full example, starting from your sample:
>>
>>
>>    A: 1,foo,v   B: 2,foo,w
>>     /\          /\
>>    /  \        /  \
>>   |    \______/____\
>>   |          /     C: 3,foo,x           # Alice wants to suture the
>>   |         /        \                  # two files to resolve the
>>   |        /          \                 # ncc between A and B, but
>>   |       D: 2,bar,y   \                #
>>   |______/              |               # Bob renames one and then
>>   E: 1,foo,v            |               # merges into E
>>   |  2,bar,y            |               #
>>   |                     G: 3,foo,u      # both do some edits
>>   F: 1,foo,u            |               #
>>  /|  2,bar,y            |               # then Alice want to merge,
>> / |                    /                # but figures there's another
>> /  H: 2,bar,y          /                 # ncc. She still thinks
>> |   \                 /                  # suturing is fine, thus
>> |    \               /                   # votes again for her
>> |     \             /                    # suturing approach, by
>> |      \           /                     # dropping the offending
>> |       \         /                      # node id 1.
>> |        \       /                       #
>> |        I: 3,foo,z                      # Resulting in dragging in
>> |            |                           # changes from node id 2,
>> |            |                           # but loosing other changes
>> |            |                           # to node id 1 from Bob.
>> |            |                           #
>> |            |                           # After a lengthy detabe with
>> |            |                           # Alice, he finally agrees on
>> |            |                           # suturing the files, but he
>> |            |                           # still want to keep his
>> edit.
>> |            |                           #
>> K: 4,foo,u   |                           # So he copies his latest
>> \ 2,bar,y   |                           # version of foo...
>>  \          /                           #
>>   \        /                            #
>>    \      /                             # ..and sutures that together
>>     \    /                              # with Alice's version, thus
>>     L: 5,foo,t                          # suturing 3 and 4 into 5.
>>                                         # (2 has been sutured into 3,
>>                                         # so it disappears).
>
>
> In the implementation of suturing in my head, node-id 3 is a synonym
> for "1&2".  In this example, if you were to merge revs D and G, then
> node-id 2 from rev D should match with node-id 3 from rev G.  The
> result is that the rename between B and D gets cleanly merged, and
> there is a three-way merge of contents between D and G with B as the
> ancestor.
>
> This automatic merging of changes to one of the files in a suture into
> the child of the suture seems to be one of the primary features of a
> suture.

+5


-- 
-- Stephe




reply via email to

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