At the company I work for we use subversion and TortoiseSVN to manage our source code. Each project is branched off the trunk. When we need to integrate the different projects for a release, we create a release branch that contains the code that will be integrated, tested, and deployed to production. Typically we only have one release branch.
Recently, however, some of the items in one of the projects got delayed and were scheduled to go into the next release. As a result, someone requested that a second release branch be created to hold the delayed changes and prevent them from getting merged into the current release.
So far this has caused us a lot of grief and lots of tree conflicts since some items in the future release branch are dependent on items in the current release branch. The only way we were able to solve these issues was to wait until the current release was deployed, merge the release branch into the trunk, merge the trunk into the future release branch, and then merge the changes from project branch into the future release branch.
As a result of this issue we have had to recommend that we should never have more than one release branch because it causes merge issues.
However, I am wondering if this is the correct way to go. Does anyone know if it is possible to manage multiple release branches in subversion? Surely it must be possible to manage features that get delayed without compromising one's ability to do merges.
Does anyone out there have any experience concerning the scenario I've presented that you'd be willing to share? I'd just like to know how I can improve the way releases are managed at my workplace so this doesn't happen again.