|Subject:||smerge from one branch to several, then from those to another doesn't work correctly|
I use feature branches. Sometimes a feature branch implements something that's merged into multiple branches that depend on it. And those get further merged into a release branch. All branches initially come from a vendor's original source from SVN. Initial setup: # Create branches starting from original vendor's source. # each will then go in its own direction svk copy //vt/branches/vendor //vt/feature1 svk copy //vt/branches/vendor //vt/feature2 Now: # (create //vt/branches/coolthing) # this will then provide functionality used # by both feature1 and feature2. # Merge the new coolthing branch into the ones that use it svk smerge //vt/branches/coolthing //vt/branches/feature1 svk smerge //vt/branches/coolthing //vt/branches/feature2 # Merge the feature branches into the release branch, which # has all the stable features. svk smerge //vt/branches/feature1 //vt/release svk smerge //vt/branches/feature2 //vt/release This works until the last line. Apparently SVK is confused by that the coolthing changes are being merged from both feature1 and feature2. The result is that the merge from feature1 goes well, but for feature2 smerge mysteriously forgets where it last merged from, and tries to apply changes starting at the point where the feature2 branch got created. That is, all the branches are descendents of the vendor branch ultimately, and in this case svk tries to apply all the differences between the vendor branch and the current feature2 branch to the release branch, even though they were already merged into //vt/release. The result of the last line should be an empty merge, unless other changes were made to feature2, of course.