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