I'm trying to work out a good method to manage code changes on a large project with multiple teams. We use subversion at the moment, but I want more flexibility in building a new release than I seem to be able to get with subversion.
Here's roughly I want:
- for each developer to create easily identifiable patches for the project. Each patch delivers a complete user story (a releasable feature or fix). It might encompass many changes to many files.
 - developers are able to easily apply and remove their own and other patches to facilitate testing
 - release manager selects the patches to be used in the next release into a new branch
 - branch is tested, fixes merged in, and ultimately merged into live
 - teams can then pull these changes back down into their sandboxes.
 
I'm looking at stacked git as a way of achieving this, but what other tools or techniques can deliver this sort of workflow?
