Discussing TFS merge and branch guideline internally, some team member suggest only leaves one release branch, and 'keep it aligned with production' by implementing the hotfixes and services packs there. My thinking is to create multiple release branches basically each mapped out to a development branch and merge to main, essentially main aligns to production. Could someone suggest which route should we go here?
In your scenario your team creates a branch to stabilize the release and then merges the release branch back into the main source tree after the software is released. The following is a view showing branching for releases, suggest you to use this schema :
Your Team Project
└ Main → Main integration branch
│ └ Source
└ Releases → Maintenance branch container
└ Release 1 → Maintenance branch
│ └ Source
│ └ Other Asset Folders
└ Release 2 → Maintenance branch
└ Source
└ Other Asset Folders