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