If two developers each create a feature branch from trunk, is it safe for them to "sync merge" between their feature branches as well as from trunk, and then still be able to reintegrate each feature branch to trunk without issue?
By "sync merge" I mean a command of the form "svn merge ^/Project1/trunk" and "svn merge ^/Project1/branches/other-feature-branch" where the svn:mergeinfo property will keep track of what has been merged already from each location.
The reason I ask is that I've read documentation in a number of places that suggests that remerging in the same revisions to a branch will cause conflict problems (although I don't see anywhere where it is explained why this should be the case). If this is so then the scenario described above should be problematic because each feature branch will be syncing with trunk as well as with the other feature branch, therefore any changes made in trunk will be recieved both by syncing with trunk directly but also when syncing with the other feature branch (which may have picked up the same trunk changes already).
However in the testing I've done this appears to work perfectly well, but I'd like some expert reassurance before I recommend this as a workflow for our team.
@nosid: Replying to nosid in this edit because the ridiculous character limit on SO prevents a 4 sentence comment. What is this Twitter?
I've read the documentation. The problem is it describes a very simple scenario where only one destabilizing feature is worked on at a time, and where the destabilizing work is done in a feature branch while all the other work is done in trunk. In that scenario it's trivial to keep the feature branch in sync with trunk.
However in a more realistic scenario a product can quite easily be having several major destabilizing pieces of work done on it at once. What then is the process for keeping those pieces of work in sync in such a way that they can sync on demand with trunk and each other but without having breaking changes forced upon them?