We are moving from TFVC to GIT, in TFVC we used to manage DEV branch for development and Master branch for release.
TFVC Branches Management
- Every Developer will work on DEV Branch and they will commit their changes on DEV Branch.
- Build will be deployed from DEV Branch on Staging ENV ( staging is our internal environment. )
- Once we are done with PCR / New Integrations ( DEV Branch) for on going Sprint and we are ready for live we used to merge changes from DEV TO Master Branch.
- Build will be deployed from Master on UAT / BETA ( Clients testing environment).
- Once they verify and give go signal, same build will be deployed on Live.
Using this way use to manage only DEV and Master branches in TFVC.
Now in GIT every developer is creating his own branch when they start working on any PCR/ New Integrations. Once they are done with changes these will be merged in Master using Pull Request ( I know we can delete the branch after changes are merged, but i have seen people are not following this flow) .
Only 2 months back we started using GIT and right now I can see more than 10-15 branches, we don't have any dedicated resource who will take care of managing branches and this workflow.
After development is done for current Sprit / PCR / Hotfix we will deploy build on Staging / UAT / LIVE. New branch will be maintained with each live deployment / release.
So is it good idea to Maintain Development Branches in DEV Repository and For Live / Release branches create ( Master / Release ) repository to maintain release branches.
This way I just want to keep things separate, do you think its good idea? Will there be any issues in future we will face or is their any better way of doing it?