We have 9-10 applications in our project. Until now, there wasn't a defined TFS structure and no release management. We need to setup one.
We are stuck in middle of it right now with some issues about the process to be followed for every release.
This is what we have planned till now. We create a main branch which will have the current production source code. For managing the releases, we will create a "releases" folder where we will create a separate branch for every release. All the bug fixes and developer check ins will be done on this branch.
Currently, for deployment purpose, we are deploying the developed/bug fixed code to QA. After QA validation, we copy the published code from the QA environment to the Staging Servers. After stage validation, the published code is copied to production.
Now, We are unable to figure out how/merge do we merge the release code to main line. The client's requirement is that mainline code should be the one from where we published and deployed to QA. We were earlier planning to deploy from the release branch and merge the release branch to main once all the validation and the production move is complete.
But this means that if we incur any merging issues, the main line code could be buggy or unreliable and we could face major issues in case of any hot fixes/further releases.
Please suggest a strategy that would be suitable for my requirements.
Thanks in advance.