This is exactly the sort of thing I'm interested in too. I would like to approve changes before they're merged into a "final build". At the moment, CruiseControl essentially gives me the current development build all of the time.
Here's my situation: - I have a 2 month development cycle - about every 2 months I do a full release of all my systems. - Every day, developers check-in new features, which are built and deployed to our dev system (using CruiseControl) for testing. - Towards the end of the cycle, a code freeze is done - only bug fixes are allowed in. - We test deployment to our staging server after testing and bug fixing is complete. - We release. The problem is, that every now and again, a really urgent bug fix or feature request comes in. In this case, I have to abandon CruiseControl and create a manual patch, but if there were multiple branches in CruiseControl, e.g. dev, testing and release - I could use CruiseControl to manage deployment of patches. I could create a process to promote checkins (features) from dev, to testing to release and always have a trusted build in CruiseControl.
