Our team uses TFS for version control. Our branching strategy is as follows:
- We have a main branch that we use as the dev branch
- In a four-weekly cycles, we release our software
- When this is done, a release branch is created from the main branch, representing the state of the software as it is released
- When changes need to be made before the next planned release is due (critical bugs), an emergency release branch is created from the most recent release branch.
- When the software is live, this branch will be merged to the main branch to ensure the bug is not reintroduced with the next release
The result of this branching strategy is that the list of branches is, obviously, consistently growing over time creating a nice scroll-fest, if you need to create/merge branches for a release.
Is it a good idea to keep all branches, or are there other strategies to deal with this?