I'd like to implement a multi-stage check-in, i.e. check-in for cross-testing, when that's passed check-in for QA, and when that's passed check-in for production. The only way I can think of is keeping a list of all the objects that were changed then doing a compare to make sure no-one else has changed anything while it was being tested, merge any changes if there are any, and don't make any mistakes. This sounds error prone.
Does anyone out there do this kind of thing and how do you handle it? (We're using Microsoft Team Foundation Server for our source control, but I'm not sure it matters what the back-end is).
I'm grateful for any ideas!
Thanks,
Aron.