On Thu, Apr 16, 2015 at 8:15 PM, Andy Bradford <amb-fos...@bradfords.org>
wrote:

> Thus said Scott Robison on Thu, 16 Apr 2015 16:36:59 -0600:
>
> > It is by design. Merging isn't always intuitive, and certainly there
> could
> > be a bug in it.
>
> Perhaps like this one:
>
> http://fossil.bradfords.org:8080/info/b1e9974a37c648fe
>
> Why was that merge essentially a no-op?
>

Partly I think it is because your test case consists of a single file of a
single line, which means probably (I would think) every merge resulted in a
conflict that you had to resolve manually. Here is what I think is
happening:

[1413f8301f] on trunk leads to
    [793622de13] on newbranch leads to
        [2b0c514af3] on newbranch
    [ec781a493d] on trunk

At this point trunk is merged into newbranch resulting in [d228092800].
There had to have been a conflict and the merge was resolved as taking the
line from trunk, not newbranch.

At this point newbranch has a single file with a single line that came from
trunk. There are 5 more commits before [b1e9974a37] which merges newbranch
back into trunk, and since newbranch came from trunk during conflict
resolution, the nearest common ancestor came from trunk, so trunk wins.

Effectively, the line from newbranch was deleted and the line from trunk
was inserted, so by the time of the merge there is nothing new or changed
in newbranch to merge into trunk.

Note that I have not deconstructed and played back all these changes. I
have looked at all of the commits though and this is the best I think one
can expect a merge algorithm to do with the lines in question.

-- 
Scott Robison
_______________________________________________
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to