I work in a development team that uses SVN. We keep a stable and releasable trunk at all times. All development is done on branches and is then merged to trunk when it is ready for release. If something needed to be viewed/tested before it was merged to trunk, we could deploy that branch (what might be called a feature branch) to a dev environment, where other developers and/or project managers could see it. This works well most of the time. What it doesn't work well for is when we have multiple different branches that are part of the same release cycle but not necessarily related to each other, which all need to be approved before they can be merged to the trunk all during the same period. What we'd considered doing is merging them all to a combined release branch. The problem then is that if only a portion of the branches merged are approved for release we'd need to redo the merge without those branches before we go to trunk. We'd basically have to do the merge twice - once to the dev or feature branch, and then possibly a second time to get the approved and releasable branches merged to trunk.
Is there a better way of doing this? I feel like we may run into problems if we merge from the individuals branches to a feature branch but then later again merge those individual branches to trunk. Am I right in thinking that or is this not a problem?