Subversion 1.8 Solves Symmetric Merge
Subversion 1.8 made some big improvements to Subversion merge capabilities. A major enhancement users will notice is the fact that there is no need to bother with the –reintegrate option when promoting changes from a development or task branch to trunk. Likewise, there’s no need to run any special steps if you want to keep using the development or task branch after the promotion.
I was most curious about a merge case that Subversion handled poorly up until now. I’ve illustrated the situation below:
Add file in trunk with four lines
Branch trunk to dev
Edit trunk and modify line one
Edit dev and modify line three
Merge dev to trunk, leaving trunk with the change from dev on line three
At the point of the last merge, the only unique change on trunk is the text on line one. This should be a trivial merge with no conflicts. The final automatically merged result should be:
In Subversion 1.7 the final merge generated a merge conflict. It was trying to reinsert the original change on line 3, even though that was not a unique change from trunk.
Subversion 1.8 handles the merge cleanly with the correct anticipated output. That gives me a lot more confidence in Subversion merging.
There’s a very comprehensive description of the symmetric merging improvements available on the Subversion wiki. The bottom line is that Subversion merging is more robust and reliable now. Want to try it? Grab a certified, fully tested Subversion 1.8 release from our website.
Subversion is a registered trademark of the Apache Software Foundation.