Branch Reference Diagrams
The last of nine (9) Version Control topics provides reference diagrams depicting various aspects of how branches relate to one another. Note that these diagrams depict the Modified Gitflow approach, which is recommended for the most complex Solution, or for those which will be delivered by two or more Teams.
Branches, Environments & Task Responsibilities
Branches & Responsibilities
The figure at right depicts a summary of the Branches, the Environments to which each Branch is deployed, and the responsibility for various tasks related to each Branch.
The table which follows provides more detail about the tasks being carried out by various Solution Delivery members during each Build cycle and each Candidate Release cycle.
Task Sequence
Solution Analyst / Developer Tasks
Test Analyst Tasks
DevSecOps Tasks
QA Tasks
For each Build Release:
- When starting work on a Story / Bug, create a Story / Bug Branch from the parent Build Branch.
- Merge work-in-progress and completed Stories to Work Branch at least daily, preferably twice or more so changes are available to Testers and potential conflicts with other changes can be identified quickly.
- Build & Deploy Work Branch to DEV1
- Following an approved Pull Request, merge ‘Desk Check’ approved Stories to the parent Build Branch.
For each Candidate Release:
- When starting work on a Release Bug, create a Bug Branch from the parent Candidate Release Branch.
- Following an approved Pull Request, merge ‘Functional Review’ approved Bugs to the parent Release Branch.
- Conduct Functional Testing in DEV1
- Conduct Build-level Integration Testing in TST1
- Compile and provide Test Results to support Demos
After each Release Planning Event:
- If Solution uses Modified Gitflow, create new Build Branch.
Otherwise Build Branch merely continues on if using Standard Gitflow.
After the last Sprint of each Release:
- Create new Cadidate Release Branch.
- Merge ‘Accepted’ Features to new Candidate Release Branch
- Deploy new Candidate Release Branch to TST2
Ongoing (or Automate):
- Deploy Build Branch to TST1
As requested by QA:
- Deploy Candidate Release Branch to DEV2.
- Deploy Candidate Release Branch to QA2, executing a mock 'Move to Production'
Note:Â If the Solution does not have any active Teams, then DevSecOps will pick up all Team tasks.
After each new Candidate Release (i.e., new Candidate Release Branch is created):
- Smoke Test Candidate Release Branch deployment in TST2 to validate new Branch and deployment tasks.
After Smoke Test passes:
- Request DevSecOps deploy Candidate Release Branch to DEV2.
- Conduct Release-level Integration Testing in TST2.
Once enough Integration Tests pass:
- Request DevSecOps deploy Candidate Release Branch to QA2.
- Conduct remaining Certification testing:
Branches & Environments
The diagram at right provides an alternate reference perspective of the Branches and the Environments to which each is typically deployed.