SlideShare a Scribd company logo
Branching Strategy 
For Git and Subversion
Subversion 
● Subversion is a centralized source control 
management system. 
● Very easy to use, checkout a working copy 
and sync before you check-in. 
● Multiple working copies to work on different 
releases. big context switch. 
● Hard at merge. Prepare to rewrite the code 
while you are at it.
Branching in Subversion 
● Use trunk for development. 
● Branch for releases and bugfixes. 
● Merge branch back into trunk after 
deployment. 
● Reintegrate branch and don’t use again. 
● Use maven release plugin to publish artifacts 
and tag source. 
● Let release branches track prod (not trunk).
trunk bugfixes release env 
3.merge 
hotfix 
tag 
2.0 
1.prepare 
hotfix 
2.deploy 
release 
2.0 RC1 
1.prepare 
release 
tag 
1.1 
3.merge 
release 
2.deploy 
hotfix
Maven release plugin 
<!-- scm repo url --> 
<scm><connection>https://myrepo/myproject/trunk</connection></scm> 
<!-- release plugin --> 
<plugin> 
<groupId>org.apache.maven.plugins</groupId> 
<artifactId>maven-release-plugin</artifactId> 
<version>2.4.1</version> 
<configuration> 
<tagBase>https://myrepo/myproject/tags</tagBase> 
<tagNameFormat>${project.version}</tagNameFormat> 
<dryRun>false</dryRun> 
<checkModificationExcludes> 
<checkModificationExclude>pom.xml</checkModificationExclude> 
</checkModificationExcludes> 
</configuration> 
</plugin>
Git 
● Git is a distrubuted source control 
management system. 
● Not easy to use: clone repo, checkout a 
branch to local copy, pull and push to origin. 
● One working copy enough to work on 
different releases. fast context switch. 
● Excellent merge because of the local history.
Branching in Git 
● Use develop branch for development. 
● Use master as golden image. i.e. no direct 
check-ins only merges. 
● Use bugfixes and release branches as 
“release” branches. i.e. deploy from these. 
● Don’t release from master or develop. 
● Use private branches outside of these freely. 
● Let master track prod.
master develop bugfixes release env 
tag 
1.0 
3.merge 
hotfix 
tag 
2.0 
1.prepare 
hotfix 
next 
release 
2.deploy 
release 
2.0 RC1 
1.prepare 
release 
tag 
1.1 
3.merge 
release 
2.deploy 
hotfix
Fini

More Related Content

PPTX
TDD on OSGi, in practice.
PDF
A Git Workflow Model or Branching Strategy
PPTX
A successful Git branching model
PDF
Git-flow workflow and pull-requests
PDF
"The Story of Declarative React at Grammarly: From two-way data binding with ...
PPTX
Git workflows
PPTX
Building the Test Automation Framework - Jenkins for Testers
PPTX
Git in Continuous Deployment
TDD on OSGi, in practice.
A Git Workflow Model or Branching Strategy
A successful Git branching model
Git-flow workflow and pull-requests
"The Story of Declarative React at Grammarly: From two-way data binding with ...
Git workflows
Building the Test Automation Framework - Jenkins for Testers
Git in Continuous Deployment

What's hot (20)

PPTX
Refresh your project vision with Report Portal
PDF
Automated android testing using jenkins ci
PPTX
Git in 10 minutes (WordCamp Europe 2017)
PDF
Android + jenkins
PPT
Git workflows
PDF
Trunk-Based Development
PDF
Continuous Delivery for Front-End Engineers
PDF
Gitlab flow solo
PDF
Viktor Turskyi "Effective NodeJS Application Development"
PPTX
Continuous integration in games development
PPTX
Genymotion with Jenkins
PPTX
TCE Automation
PDF
Using GitLab CI
PDF
Continuous Development Pipeline
PPTX
Using Git with WordPress - Presented by Nigel Rodgers.
PDF
Виталий Редько "React + Redux: performance & scalability"
PPT
Git workflows presentation
PDF
Merge hells - Feature Toggles to the rescue
PDF
Introduction of bootstrap in angular
PDF
Create an architecture for web test automation
Refresh your project vision with Report Portal
Automated android testing using jenkins ci
Git in 10 minutes (WordCamp Europe 2017)
Android + jenkins
Git workflows
Trunk-Based Development
Continuous Delivery for Front-End Engineers
Gitlab flow solo
Viktor Turskyi "Effective NodeJS Application Development"
Continuous integration in games development
Genymotion with Jenkins
TCE Automation
Using GitLab CI
Continuous Development Pipeline
Using Git with WordPress - Presented by Nigel Rodgers.
Виталий Редько "React + Redux: performance & scalability"
Git workflows presentation
Merge hells - Feature Toggles to the rescue
Introduction of bootstrap in angular
Create an architecture for web test automation
Ad

Similar to Branching Strategies For Git and Subversion (20)

PDF
Introducing Git and git flow
PPTX
01 - Git vs SVN
PDF
Collaborative development with git
PPTX
Git and git workflow best practice
PDF
Git 101: Force-sensitive to Jedi padawan
PDF
You're doing it wrong! Git it right!
PDF
Git flow Introduction
PPTX
git Technologies
PDF
Continuous Delivery in OSS using Shipkit.org
PDF
GeoServer Developers Workshop
PDF
My "Perfect" Toolchain Setup for Grails Projects
KEY
ActiveLAMP Process
PDF
Git Workflow With Gitflow
PPTX
Git usage (Basics and workflow)
PDF
[WroclawJUG] Continuous Delivery in OSS using Shipkit
PDF
Gitflow Workflow
PDF
Git for developers
PDF
Composer and Git in Magento
PDF
Microservices Development Process at Predix.io
PPTX
Maven
Introducing Git and git flow
01 - Git vs SVN
Collaborative development with git
Git and git workflow best practice
Git 101: Force-sensitive to Jedi padawan
You're doing it wrong! Git it right!
Git flow Introduction
git Technologies
Continuous Delivery in OSS using Shipkit.org
GeoServer Developers Workshop
My "Perfect" Toolchain Setup for Grails Projects
ActiveLAMP Process
Git Workflow With Gitflow
Git usage (Basics and workflow)
[WroclawJUG] Continuous Delivery in OSS using Shipkit
Gitflow Workflow
Git for developers
Composer and Git in Magento
Microservices Development Process at Predix.io
Maven
Ad

Recently uploaded (20)

PDF
How Onsite IT Support Drives Business Efficiency, Security, and Growth.pdf
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
CIFDAQ's Token Spotlight: SKY - A Forgotten Giant's Comeback?
PDF
Enable Enterprise-Ready Security on IBM i Systems.pdf
PPTX
Belt and Road Supply Chain Finance Blockchain Solution
PDF
Event Presentation Google Cloud Next Extended 2025
PDF
ai-archetype-understanding-the-personality-of-agentic-ai.pdf
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
A Day in the Life of Location Data - Turning Where into How.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
REPORT: Heating appliances market in Poland 2024
PDF
madgavkar20181017ppt McKinsey Presentation.pdf
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
CroxyProxy Instagram Access id login.pptx
PDF
How AI Agents Improve Data Accuracy and Consistency in Due Diligence.pdf
PDF
Chapter 2 Digital Image Fundamentals.pdf
PPTX
How to Build Crypto Derivative Exchanges from Scratch.pptx
How Onsite IT Support Drives Business Efficiency, Security, and Growth.pdf
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
CIFDAQ's Token Spotlight: SKY - A Forgotten Giant's Comeback?
Enable Enterprise-Ready Security on IBM i Systems.pdf
Belt and Road Supply Chain Finance Blockchain Solution
Event Presentation Google Cloud Next Extended 2025
ai-archetype-understanding-the-personality-of-agentic-ai.pdf
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
A Day in the Life of Location Data - Turning Where into How.pdf
Understanding_Digital_Forensics_Presentation.pptx
REPORT: Heating appliances market in Poland 2024
madgavkar20181017ppt McKinsey Presentation.pdf
CIFDAQ's Market Insight: SEC Turns Pro Crypto
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
CroxyProxy Instagram Access id login.pptx
How AI Agents Improve Data Accuracy and Consistency in Due Diligence.pdf
Chapter 2 Digital Image Fundamentals.pdf
How to Build Crypto Derivative Exchanges from Scratch.pptx

Branching Strategies For Git and Subversion

  • 1. Branching Strategy For Git and Subversion
  • 2. Subversion ● Subversion is a centralized source control management system. ● Very easy to use, checkout a working copy and sync before you check-in. ● Multiple working copies to work on different releases. big context switch. ● Hard at merge. Prepare to rewrite the code while you are at it.
  • 3. Branching in Subversion ● Use trunk for development. ● Branch for releases and bugfixes. ● Merge branch back into trunk after deployment. ● Reintegrate branch and don’t use again. ● Use maven release plugin to publish artifacts and tag source. ● Let release branches track prod (not trunk).
  • 4. trunk bugfixes release env 3.merge hotfix tag 2.0 1.prepare hotfix 2.deploy release 2.0 RC1 1.prepare release tag 1.1 3.merge release 2.deploy hotfix
  • 5. Maven release plugin <!-- scm repo url --> <scm><connection>https://myrepo/myproject/trunk</connection></scm> <!-- release plugin --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> <version>2.4.1</version> <configuration> <tagBase>https://myrepo/myproject/tags</tagBase> <tagNameFormat>${project.version}</tagNameFormat> <dryRun>false</dryRun> <checkModificationExcludes> <checkModificationExclude>pom.xml</checkModificationExclude> </checkModificationExcludes> </configuration> </plugin>
  • 6. Git ● Git is a distrubuted source control management system. ● Not easy to use: clone repo, checkout a branch to local copy, pull and push to origin. ● One working copy enough to work on different releases. fast context switch. ● Excellent merge because of the local history.
  • 7. Branching in Git ● Use develop branch for development. ● Use master as golden image. i.e. no direct check-ins only merges. ● Use bugfixes and release branches as “release” branches. i.e. deploy from these. ● Don’t release from master or develop. ● Use private branches outside of these freely. ● Let master track prod.
  • 8. master develop bugfixes release env tag 1.0 3.merge hotfix tag 2.0 1.prepare hotfix next release 2.deploy release 2.0 RC1 1.prepare release tag 1.1 3.merge release 2.deploy hotfix