I feel that the SVN branching and merging/integration algorithm is 
flawed. However I am not sure if this is a known limitation of SVN. I 
did 2 tests to compare SVN against Perforce/git. The intention of the test 
is to see if a change done by a user at some point in time and taken to 
multiple branches comes back to the main branch duplicated multiple 
times without indicating a conflict.

(Look at the attached tests.txt if the following looks misaligned)


Test 1:
-------

           Integrate B1 back to main
             +---------------+
             |               V
Main -> Branch1 -> Branch2  Main Main
a       a    a     a    a    a    a
b       b    b     b    b    b    b
c       c    c     c    x    c    x
z       z    d     d    d    d    d
             z     z    z    z    d
                        |         z
                        |         ^
                        +---------+
                    Integrate B2 back to main

In Perforce/git the result is (without conflict)
a
b
x
d
z

Test 2:
-------

           Integrate B1 back to main
             +----------------+
             |                V
Main -> Branch1 -> Branch2   Main Main
a       a    a     a  a  a    a    a
b       b    b     b  d  d    b    d
c       c    c     c  z  b    c    b
z       z    d     d     c    d    c
             z     z     z    z    d
                         |         z
                         |         ^
                         +---------+
                    Integrate B2 back to main

In Perforce/git the result is (without conflict)
a
d
b
c
z

Any thoughts?
Test 1:
-------

           Integrate B1 back to main
             +---------------+
             |               V
Main -> Branch1 -> Branch2  Main Main
a       a    a     a    a    a    a
b       b    b     b    b    b    b
c       c    c     c    x    c    x
z       z    d     d    d    d    d
             z     z    z    z    d
                        |         z
                        |         ^
                        +---------+
                    Integrate B2 back to main

In Perforce the result is (without conflict)
a
b
x
d
z

Test 2:
-------

           Integrate B1 back to main
             +----------------+
             |                V
Main -> Branch1 -> Branch2   Main Main
a       a    a     a  a  a    a    a
b       b    b     b  d  d    b    d
c       c    c     c  z  b    c    b
z       z    d     d     c    d    c
             z     z     z    z    d
                         |         z
                         |         ^
                         +---------+
                    Integrate B2 back to main

In Perforce the result is (without conflict)
a
d
b
c
z

Reply via email to