3. Branching Over the Top
Topics covered in the presentation
• What is branch merging
• Why Branching
• When Branching
• Branch Plans
• Branch Examples
• Demo
Sohail Mohabbat Ali | Software Evangelist
4. Branching
Branching and Merging
Branching is the duplication of an object under revision control so that
modifications can happen in parallel along both branches.
Merging is the act of reconciling multiple changes made to different copies of
the same file. Most often, it is necessary when a file is modified by two
people on two different computers at the same time. Later, these changes
are merged, resulting in a single new file that contains both sets of changes.
Sohail Mohabbat Ali | Software Evangelist
5. Branching
Why Branching
• Makes Software Agile
• Increases Maintainability.
Sohail Mohabbat Ali | Software Evangelist
6. Branching
When Branching?
• Release Isolation
• Feature Isolation
• Team Isolation
• Integration Isolation
Sohail Mohabbat Ali | Software Evangelist
7. Branching
Branching Plans
• Basic Branch Plan
• Standard Branch Plan
• Advanced Branch Plan
Sohail Mohabbat Ali | Software Evangelist
8. Branching
Basic Branch Plan
• Basic Branch Plan
• Standard Branch Plan
• Advanced Branch Plan
Sohail Mohabbat Ali | Software Evangelist
9. Branching
Branching Plans
Development
Branch
Branch
SERVICE PACK Production /
Release
Branch
RELEASE
Sohail Mohabbat Ali | Software Evangelist
10. Branching
Advance Branch Plans
Development
Branch
Branch
SERVICE PACK
Branch
Production /
Release
HOT FIX
Branch
RELEASE
Sohail Mohabbat Ali | Software Evangelist
11. Branching
Branch Example (Single Team)
Nightly Build
(Early Validation)
CI / Nightly Builds
(Early validation)
V1.1 (start) V1.1 FT3 V1.2
DEV 3 4 5 8
Branch
RI
RI
FI
FI
FI
V1.1 V1.2
1 2 6 7
V1.0 V1.1 (bug fix)
Production
Sohail Mohabbat Ali | Software Evangelist
12. Branching
Branch Example (Multi Team)
DEV FT3
V1.1 FT2 (start) V1.1 FT2
RI
DEV FT2
BM
V1.1 FT1
RI
DEV FT1
FI
Branch
Branch
Branch
RI
V1.1 FT1 V1.1 Golden
MAIN
V1.0
Branch
RI
FI
V1.0.1 V1.1 (Release)
PRODUCTION
Sohail Mohabbat Ali | Software Evangelist
13. Branching
Branch Example (Feature)
The Reverse
The two DEV FEATURE 2 4 Integration tasks
branches are are sequential
created as tasks, but
Branch
sequential tasks, created as two
RI
but as one unit of units of work
work.
TEAM 2 2 5
FEATURE 1 3
Branch
RI
TEAM 1 2 5
Branch
RI
MAIN 1 6 6
Branch
Sohail Mohabbat Ali | Software Evangelist
14. Branching
Branch Example (Hotfix, Servicepack)
The two DEV DEV … 2
branches are
created as
sequential tasks,
but as one unit of
work.
DEV-1 2
Branch
MAIN 1
Branch
Branch
FI
R1 (SP) R2 (SP)
SERVICE PACK 3 6
Branch
Branch
Branch
R1 (SP0) R1 (SP1) R2 (SP0)
HOT FIX 4 7
Branch
Branch
Branch
R1 (SP0) R1 (SP1) R2 (SP0)
Sohail Mohabbat Ali | Software Evangelist