I'm working on migrating our dev team to Subversion and improving our repository structure and processes. We're basically going with the standard trunk/branches/tags setup. I was originally planning on using a release branches strategy (branches/1.0, branches/2.0, etc), but am now leaning toward a code promotion model (test and production branches). It's a little better and more intuitive for how our team works, but releases will be a little less straight-forward: we effectively need the test branch to become the production branch. (The production branch is always available for maintenance releases, but the test branch doesn't need to exist between deployment of one release and test-ready of the next.)
Can anyone who is using code promotion recommend the best way to implement promoting a branch from test to production? I figure these are my options, but don't know if they have major pros/cons:
a. Fully merge test branch into production branch, delete test branch
b. Delete production branch, copy test to production, delete test branch
c. Delete production branch, rename test branch to production
Thanks for any advice!