TFS 2010 Branching Advice
Here’s our scenario...
We took our complete code base out of VSS, created a main branch in TFS, and put all our code into this main branch. We then branched MAIN to a development branch and did a full build of all our code from MAIN. We started testing the full build
from MAIN and, when bugs were found, the bug fixes were made in DEV. For each bug fix, the code was merged back into MAIN and a build was done out of MAIN.
Finally, after iterations of testing and fixes, we were ready for a release to production. The production release was from MAIN (both the initial build, as well as all the individual builds for fixes found during testing). Once released both MAIN
and DEV were labeled.
However, before a different branching system could be developed, our developers started working on the next release of our software suite, by fixing more bugs in DEV. Thus, currently, changes have been made and checked into DEV, and items are currently
checked out in DEV and being worked on. None of these current changes have been merged into MAIN (yet...).
So, I guess we’re just looking for some advice on how to continue our development with TFS2010.
Should we continue with the same model of all fixes going on in DEV, merge back into MAIN, and build for production from MAIN?
Or, should we change it up a little bit and create a RELEASE branch, do all our bug fixes and releases from there, while merging back into MAIN and DEV periodically? This would leave our DEV for additional work on future releases.
Should we get to a basic or standard branch plan? Should we use the single team branching model or the concurrent hot fix, service pack, and v.next branching model? (These ideas are from the TFS branching guidance documentation.)
We’re a small group – only six developers. We have full releases (e.g., v6.0, etc.). We have service pack releases (e.g., v6.0 SP1, etc.), which is essentially the full release version plus all patches/hotfixes since the full version
was released. And we have patches/hotfix releases for individual applications and/or components, which get rolled up into the SP release.
My recommendation is to choose one of the plans described in the TFS Branching guidance. As you have already figured out, if you had done that, you would not have any issues. And choose the simplest one that will serve your needs.
Since you want service pack branches, I suggest you start first by examining the Standard Branch plan. I don't have enough experience to advise you on the advanced or mature plans. So if you feel you might need one of them, post another message and
someone with more experience can jump in to help.