SlideShare a Scribd company logo
Page 1 of 4
Branching & Merging Strategy.
Date 19th
Dec 2016
Author Rahul Janghel
Version 1.0.0
1. Objective:
Build a better Branching and merge policy which will provide:
1.1 Single Master model with :
 Stable and Clean Master Branch.
 Release-ready code on Master Branch.
1.2 Defined Branch-forking practice.
1.3 Predictable :
 Sprint / Feature Branch Name
 POMVersion
 Branch for Feature / fix Release, along with feature / fix release sequence.
 Source branch to fork a feature / fix branch
 Destination branch to receive feature / fix.
1.4 Independent branch per :
 Sprint
 Feature
 Fix.
1.5 Stable upstream branch.
2. Define Branching Architecture :
2.1 Branch Naming Convention :
<Sprint Version>.<Major Release>.<Minor Release>.<Feature / Fix Branch>
- Sprint started at 1st Oct 2016 may have a Sprint Version as 2016_Q4.1.0
- Sprint Version could be anything between 2016_Q4.1.0 to 2016_Q4.9.99
- Branch Version will be always an incremental number.
- Week number of calendar month will not get consider.
2.2 Sprint and release branch naming convention:
- Create Sprint Branch with name “2016_Q4.0.0” in sprint period of “2016-Q4”.
- Branch Naming Scheme under Sprint “2016-Q4” :
 1st major release : “2016-Q4.1.0”
 1st minor release under 1st
major release : “2016-Q4.1.1”
 2nd major release : “2016-Q4.2.0”
 1st minor release under 2nd
major release : “2016-Q4.2.1”
2.3 Feature branch naming convention:
- In sprint period of “2016-Q4”, Developer shouldcreate feature / fix branch name as
“2016_Q4.0.0-feature_number”.
Page 2 of 4
- Feature Branch Naming Scheme under Sprint “2016-Q4” :
 Feature / fix branch name under 1st major release:
“2016-Q4.1.0-feature_number”.
 Feature / fix branch name under 1st minor release :
“2016-Q4.1.1-feature_number”
 Feature / fix branch name under 2nd
major release:
“2016-Q4.2.0-feature_number”.
 Feature / fix branch name under 2nd
minor release :
“2016-Q4.2.1-feature_number”
2.4 Release Branch naming convention:
- For Sprint period “2016-Q4”, Release Branch name should be :
 “2016_Q4.0.0_RC”
2.5 POM version convention:
- In sprintperiodof “2016-Q4”, POMversioningshouldbe like, (If using SNAPSHOT) :
 1st major release branch POMVersion : “2016-Q4.1.0-SNAPSHOT”
 1st minor release branch POMVersion : “2016-Q4.1.1-SNAPSHOT”
 2nd major release branch POMVersion : “2016-Q4.2.0-SNAPSHOT”
 2nd minor release branch POMVersion : “2016-Q4.2.1-SNAPSHOT”
 Feature / fix branch POMVersion under X major & Y minor release:
“2016-Q4.X.Y-feature_number-SNAPSHOT”.
 For Release Branch “2016_Q4.0.0_RC” POMVersion : “2016_Q4.0.0”
2.6 Release Branch Tag name scheme :
- For Sprint period “2016-Q4”, Release Branch “2016_Q4.0.0_RC” should get tag as
 “2016_Q4.0.0_RC_Release-Date”
3. Branching Process flow :
3.1 Sprint Branch creation work flow :
- Ensure Master Branch has all updates from last Sprint Release Branch.
 Check master branch has same commit ID as last Sprint Release Branch.
 Last Sprint Release Branch is tagged after successful Production / QA / QA
release.
- Create ticket / send mail to DevOps team to create a Sprint branch from master.
- Update Sprint version in all POMfiles.
- Ensure approved naming scheme is followed for branch creation and POMfiles.
- Execute Integrationtest,code coverage shouldmeet minimum passing percentage.
- Inform all developers upon new Sprint branch status.
 Mention new branch’s name.
 POMfile version
 Suggest name of first feature branch for current sprint.
Page 3 of 4
3.2 Feature / Fix Branch creation work flow :
- Create ticket / send mail to DevOps team to create a feature branch.
- Ensure Feature Branch has been created from sprint branch.
- Update feature branch POMversion in all POM.xml files.
- Ensure approved naming scheme is followed while crating feature branch and
updating POMfiles.
- Inform all developers upon new feature branch status
 Mention new feature branch’s name.
 Feature Branch POMfile version
3.3 Release Branch creation work flow :
- Call for Code Freeze 2 days prior to Production / QA / QA Release.
- Insure all feature / fix branch is merged to Sprint Branch.
- Take a signed off from QA team on existing fix committed in Sprint Branch.
- Create ticket / send mail to DevOps team to create a Release branch.
- Ensure all POMfiles is following approved naming scheme for POMversion.
- Ensure direct commit to Release Branch is blocked.
4. Branch Merge Process flow :
- Ensure Master and Sprint Branch is protected from direct Commit.
- To update Sprint branch from feature branch, create a pull request.
- Onlyaftersuccessfullypassingcode review criteria,merge buttonshouldgetenable.
- For Production / QA / QA / QA release, create ticket / send mail to DevOps team to
merge Master Branch into Release Branch.
- Ensure all POMfiles is following approved naming scheme for POMversion.
- Run all unit test and Integration test suite on Release Branch.
- Use Release Branch artifacts for Production / QA / QA / QA Release.
- Ensure Production/QA / QA / QA environmentissuccessfullydeployedfromRelease
Branch.
- Tag Release Branch.
- Create ticket / send mail to DevOps team to merge Master Branch into Release
Branch.
5. Use of Branch to Deploy on various environment :
- Use Sprint Branch to Deploy on QA / Dev environment.
 At least once every day.
- Use Feature / Fix Branch to deploy on Dev environment.
 Multiple time or as require every day.
- Use Release Branch to deploy on Staging / UAT / Preprod environment.
 After code freeze
 Before Production / QA / QA release.
Page 4 of 4
6. Release Branch update flow (Post Code Freeze) :
- Ask Developer to create ticket / send mail to Sprint Owner, seeking approval.
- Attach Unit test report along with request.
- Open Pull request for code review and merge into Release Branch.
- Run all unit test and Integration test suite on Release Branch.
- Use Release Branch to deploy on Staging / UAT / Preprod environment.
- Merge Release branch into Master branch.
7. Production / QA / QA Release & Hot fix Deployment :
- AfterregresstestingonUAT & Preprodenvironment,share reportswithBA & Sprint
Master and take signoff.
- Use Release Branch artifacts to Deploy over Production / QA / QA Environment.
- In case of any bug/ issue /hotfix release, from Master branch create new branch as
 For 1st major release : “2016-Q4.1.0”
 For 1st minor release under 1st
major release : “2016-Q4.1.1”
- Use fix branch artifacts to Deploy over UAT / Preprod Environment and verify.
- Use fix branch artifacts to Deploy over Production / QA / QA Environment.
- Merge fix branch into master branch & next Sprint branch.
--- EOD ---

More Related Content

What's hot (20)

PPTX
Branching and Merging Practices
Rajesh Kumar
 
PPTX
Implementing an Application Security Pipeline in Jenkins
Suman Sourav
 
PPTX
Overview of Agile Methodology
Haresh Karkar
 
PDF
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
Robert McDermott
 
PDF
DevOps Powerpoint Presentation Slides
SlideTeam
 
PDF
Azure DevOps Presentation
InCycleSoftware
 
PDF
Introduction to CICD
Knoldus Inc.
 
PPT
Effective Software Release Management
Michael Degnan
 
PPTX
Introduction to CI/CD
Steve Mactaggart
 
PDF
Agile & SCRUM basics
Arun R
 
PPTX
Azure dev ops
Tomy Rhymond
 
PDF
Git Series. Episode 3. Git Flow and Github-Flow
Mikhail Melnik
 
PDF
Deployment Strategies Powerpoint Presentation Slides
SlideTeam
 
PDF
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
Edureka!
 
PDF
Site Reliability Engineering: An Enterprise Adoption Story (an ITSM Academy W...
ITSM Academy, Inc.
 
PPTX
SRE 101 (Site Reliability Engineering)
Hussain Mansoor
 
PDF
DevOps & SRE at Google Scale
Kaushik Bhattacharya
 
PPTX
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
Simplilearn
 
PPTX
Using Azure DevOps to continuously build, test, and deploy containerized appl...
Adrian Todorov
 
PDF
SAFe® PI Planning - 4 locations - but how?
Silvio Wandfluh
 
Branching and Merging Practices
Rajesh Kumar
 
Implementing an Application Security Pipeline in Jenkins
Suman Sourav
 
Overview of Agile Methodology
Haresh Karkar
 
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
Robert McDermott
 
DevOps Powerpoint Presentation Slides
SlideTeam
 
Azure DevOps Presentation
InCycleSoftware
 
Introduction to CICD
Knoldus Inc.
 
Effective Software Release Management
Michael Degnan
 
Introduction to CI/CD
Steve Mactaggart
 
Agile & SCRUM basics
Arun R
 
Azure dev ops
Tomy Rhymond
 
Git Series. Episode 3. Git Flow and Github-Flow
Mikhail Melnik
 
Deployment Strategies Powerpoint Presentation Slides
SlideTeam
 
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
Edureka!
 
Site Reliability Engineering: An Enterprise Adoption Story (an ITSM Academy W...
ITSM Academy, Inc.
 
SRE 101 (Site Reliability Engineering)
Hussain Mansoor
 
DevOps & SRE at Google Scale
Kaushik Bhattacharya
 
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
Simplilearn
 
Using Azure DevOps to continuously build, test, and deploy containerized appl...
Adrian Todorov
 
SAFe® PI Planning - 4 locations - but how?
Silvio Wandfluh
 

Similar to Branching and merging strategy (20)

PPTX
Release With Maven
eugenn
 
PPTX
Strategy to setup Subversion for Salesforce development for Agile Team
Buyan Thyagarajan
 
PPTX
A successful Git branching model
abodeltae
 
PDF
Continuous Delivery in OSS using Shipkit.org
MarcinStachniuk
 
PDF
[WroclawJUG] Continuous Delivery in OSS using Shipkit
MarcinStachniuk
 
PDF
Software Quality Management of Opensource Project ( ubuntu and django )
uisp dsin
 
PDF
Webinar: Stop Midnight Release Madness!
XebiaLabs
 
PDF
Winter 15 : Salesforce
Jyothylakshmy P.U
 
PDF
Source code management with Git
Radu Barbu
 
DOCX
Sccm Interview Questions and Answers
KashifSCCMTrainer
 
PDF
Release Management Plan
Krishna Murthy RVN
 
PPTX
Xen Project Release and Roadmap Process (4.7+)
The Linux Foundation
 
PDF
309675745
Navin Somal
 
PDF
sap fico implementation project phase pd
smanjunathreddy24
 
PDF
Oleksii Korshenko - Magento 2 Backwards Compatible Policy
Meet Magento Italy
 
PDF
Shirly Ronen - rapid release flow and agile testing-as
AgileSparks
 
PPT
Application depolyment
shriikantL
 
PDF
Sap hana client_installation_update_guide_en
Shobha Nand Kumar
 
PDF
Mercury testing tool configuration guide 8085afc8-425c-2910-82bd-e87f551368ff
atulmud
 
PDF
A simplified Gitflow
Geshan Manandhar
 
Release With Maven
eugenn
 
Strategy to setup Subversion for Salesforce development for Agile Team
Buyan Thyagarajan
 
A successful Git branching model
abodeltae
 
Continuous Delivery in OSS using Shipkit.org
MarcinStachniuk
 
[WroclawJUG] Continuous Delivery in OSS using Shipkit
MarcinStachniuk
 
Software Quality Management of Opensource Project ( ubuntu and django )
uisp dsin
 
Webinar: Stop Midnight Release Madness!
XebiaLabs
 
Winter 15 : Salesforce
Jyothylakshmy P.U
 
Source code management with Git
Radu Barbu
 
Sccm Interview Questions and Answers
KashifSCCMTrainer
 
Release Management Plan
Krishna Murthy RVN
 
Xen Project Release and Roadmap Process (4.7+)
The Linux Foundation
 
309675745
Navin Somal
 
sap fico implementation project phase pd
smanjunathreddy24
 
Oleksii Korshenko - Magento 2 Backwards Compatible Policy
Meet Magento Italy
 
Shirly Ronen - rapid release flow and agile testing-as
AgileSparks
 
Application depolyment
shriikantL
 
Sap hana client_installation_update_guide_en
Shobha Nand Kumar
 
Mercury testing tool configuration guide 8085afc8-425c-2910-82bd-e87f551368ff
atulmud
 
A simplified Gitflow
Geshan Manandhar
 
Ad

Recently uploaded (20)

PPTX
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
PPTX
Homogeneity of Variance Test Options IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PPTX
Transforming Mining & Engineering Operations with Odoo ERP | Streamline Proje...
SatishKumar2651
 
PDF
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
 
PDF
Unlock Efficiency with Insurance Policy Administration Systems
Insurance Tech Services
 
PDF
How to Hire AI Developers_ Step-by-Step Guide in 2025.pdf
DianApps Technologies
 
PPTX
AEM User Group: India Chapter Kickoff Meeting
jennaf3
 
PDF
Alexander Marshalov - How to use AI Assistants with your Monitoring system Q2...
VictoriaMetrics
 
PDF
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
PDF
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
PPTX
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
PPTX
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
4K Video Downloader Plus Pro Crack for MacOS New Download 2025
bashirkhan333g
 
PDF
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
PDF
Digger Solo: Semantic search and maps for your local files
seanpedersen96
 
PPTX
Change Common Properties in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PPTX
Agentic Automation Journey Session 1/5: Context Grounding and Autopilot for E...
klpathrudu
 
PPTX
OpenChain @ OSS NA - In From the Cold: Open Source as Part of Mainstream Soft...
Shane Coughlan
 
PDF
Download Canva Pro 2025 PC Crack Full Latest Version
bashirkhan333g
 
PPTX
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
Homogeneity of Variance Test Options IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Transforming Mining & Engineering Operations with Odoo ERP | Streamline Proje...
SatishKumar2651
 
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
 
Unlock Efficiency with Insurance Policy Administration Systems
Insurance Tech Services
 
How to Hire AI Developers_ Step-by-Step Guide in 2025.pdf
DianApps Technologies
 
AEM User Group: India Chapter Kickoff Meeting
jennaf3
 
Alexander Marshalov - How to use AI Assistants with your Monitoring system Q2...
VictoriaMetrics
 
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
4K Video Downloader Plus Pro Crack for MacOS New Download 2025
bashirkhan333g
 
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
Digger Solo: Semantic search and maps for your local files
seanpedersen96
 
Change Common Properties in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Agentic Automation Journey Session 1/5: Context Grounding and Autopilot for E...
klpathrudu
 
OpenChain @ OSS NA - In From the Cold: Open Source as Part of Mainstream Soft...
Shane Coughlan
 
Download Canva Pro 2025 PC Crack Full Latest Version
bashirkhan333g
 
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
Ad

Branching and merging strategy

  • 1. Page 1 of 4 Branching & Merging Strategy. Date 19th Dec 2016 Author Rahul Janghel Version 1.0.0 1. Objective: Build a better Branching and merge policy which will provide: 1.1 Single Master model with :  Stable and Clean Master Branch.  Release-ready code on Master Branch. 1.2 Defined Branch-forking practice. 1.3 Predictable :  Sprint / Feature Branch Name  POMVersion  Branch for Feature / fix Release, along with feature / fix release sequence.  Source branch to fork a feature / fix branch  Destination branch to receive feature / fix. 1.4 Independent branch per :  Sprint  Feature  Fix. 1.5 Stable upstream branch. 2. Define Branching Architecture : 2.1 Branch Naming Convention : <Sprint Version>.<Major Release>.<Minor Release>.<Feature / Fix Branch> - Sprint started at 1st Oct 2016 may have a Sprint Version as 2016_Q4.1.0 - Sprint Version could be anything between 2016_Q4.1.0 to 2016_Q4.9.99 - Branch Version will be always an incremental number. - Week number of calendar month will not get consider. 2.2 Sprint and release branch naming convention: - Create Sprint Branch with name “2016_Q4.0.0” in sprint period of “2016-Q4”. - Branch Naming Scheme under Sprint “2016-Q4” :  1st major release : “2016-Q4.1.0”  1st minor release under 1st major release : “2016-Q4.1.1”  2nd major release : “2016-Q4.2.0”  1st minor release under 2nd major release : “2016-Q4.2.1” 2.3 Feature branch naming convention: - In sprint period of “2016-Q4”, Developer shouldcreate feature / fix branch name as “2016_Q4.0.0-feature_number”.
  • 2. Page 2 of 4 - Feature Branch Naming Scheme under Sprint “2016-Q4” :  Feature / fix branch name under 1st major release: “2016-Q4.1.0-feature_number”.  Feature / fix branch name under 1st minor release : “2016-Q4.1.1-feature_number”  Feature / fix branch name under 2nd major release: “2016-Q4.2.0-feature_number”.  Feature / fix branch name under 2nd minor release : “2016-Q4.2.1-feature_number” 2.4 Release Branch naming convention: - For Sprint period “2016-Q4”, Release Branch name should be :  “2016_Q4.0.0_RC” 2.5 POM version convention: - In sprintperiodof “2016-Q4”, POMversioningshouldbe like, (If using SNAPSHOT) :  1st major release branch POMVersion : “2016-Q4.1.0-SNAPSHOT”  1st minor release branch POMVersion : “2016-Q4.1.1-SNAPSHOT”  2nd major release branch POMVersion : “2016-Q4.2.0-SNAPSHOT”  2nd minor release branch POMVersion : “2016-Q4.2.1-SNAPSHOT”  Feature / fix branch POMVersion under X major & Y minor release: “2016-Q4.X.Y-feature_number-SNAPSHOT”.  For Release Branch “2016_Q4.0.0_RC” POMVersion : “2016_Q4.0.0” 2.6 Release Branch Tag name scheme : - For Sprint period “2016-Q4”, Release Branch “2016_Q4.0.0_RC” should get tag as  “2016_Q4.0.0_RC_Release-Date” 3. Branching Process flow : 3.1 Sprint Branch creation work flow : - Ensure Master Branch has all updates from last Sprint Release Branch.  Check master branch has same commit ID as last Sprint Release Branch.  Last Sprint Release Branch is tagged after successful Production / QA / QA release. - Create ticket / send mail to DevOps team to create a Sprint branch from master. - Update Sprint version in all POMfiles. - Ensure approved naming scheme is followed for branch creation and POMfiles. - Execute Integrationtest,code coverage shouldmeet minimum passing percentage. - Inform all developers upon new Sprint branch status.  Mention new branch’s name.  POMfile version  Suggest name of first feature branch for current sprint.
  • 3. Page 3 of 4 3.2 Feature / Fix Branch creation work flow : - Create ticket / send mail to DevOps team to create a feature branch. - Ensure Feature Branch has been created from sprint branch. - Update feature branch POMversion in all POM.xml files. - Ensure approved naming scheme is followed while crating feature branch and updating POMfiles. - Inform all developers upon new feature branch status  Mention new feature branch’s name.  Feature Branch POMfile version 3.3 Release Branch creation work flow : - Call for Code Freeze 2 days prior to Production / QA / QA Release. - Insure all feature / fix branch is merged to Sprint Branch. - Take a signed off from QA team on existing fix committed in Sprint Branch. - Create ticket / send mail to DevOps team to create a Release branch. - Ensure all POMfiles is following approved naming scheme for POMversion. - Ensure direct commit to Release Branch is blocked. 4. Branch Merge Process flow : - Ensure Master and Sprint Branch is protected from direct Commit. - To update Sprint branch from feature branch, create a pull request. - Onlyaftersuccessfullypassingcode review criteria,merge buttonshouldgetenable. - For Production / QA / QA / QA release, create ticket / send mail to DevOps team to merge Master Branch into Release Branch. - Ensure all POMfiles is following approved naming scheme for POMversion. - Run all unit test and Integration test suite on Release Branch. - Use Release Branch artifacts for Production / QA / QA / QA Release. - Ensure Production/QA / QA / QA environmentissuccessfullydeployedfromRelease Branch. - Tag Release Branch. - Create ticket / send mail to DevOps team to merge Master Branch into Release Branch. 5. Use of Branch to Deploy on various environment : - Use Sprint Branch to Deploy on QA / Dev environment.  At least once every day. - Use Feature / Fix Branch to deploy on Dev environment.  Multiple time or as require every day. - Use Release Branch to deploy on Staging / UAT / Preprod environment.  After code freeze  Before Production / QA / QA release.
  • 4. Page 4 of 4 6. Release Branch update flow (Post Code Freeze) : - Ask Developer to create ticket / send mail to Sprint Owner, seeking approval. - Attach Unit test report along with request. - Open Pull request for code review and merge into Release Branch. - Run all unit test and Integration test suite on Release Branch. - Use Release Branch to deploy on Staging / UAT / Preprod environment. - Merge Release branch into Master branch. 7. Production / QA / QA Release & Hot fix Deployment : - AfterregresstestingonUAT & Preprodenvironment,share reportswithBA & Sprint Master and take signoff. - Use Release Branch artifacts to Deploy over Production / QA / QA Environment. - In case of any bug/ issue /hotfix release, from Master branch create new branch as  For 1st major release : “2016-Q4.1.0”  For 1st minor release under 1st major release : “2016-Q4.1.1” - Use fix branch artifacts to Deploy over UAT / Preprod Environment and verify. - Use fix branch artifacts to Deploy over Production / QA / QA Environment. - Merge fix branch into master branch & next Sprint branch. --- EOD ---