Version Control Walkthrough (Branching Strategies) Part 4 - Release Isolation … audit alarm
Continued from Version Control Walkthrough (Branching Strategies) Part 3 - Feature Isolation … a special we explore release isolation.
Goal
Explore the Release Isolation strategy which introduces one or more release branches from MAIN, which enables concurrent release management. Technically speaking we are introducing the Development & Release isolation strategy in this walkthrough, but will discuss on the release side only in this exercise.
Context
Your team is notified by management that the organization needs to support release v2, v3 and future releases concurrently and that the compliance team has requested that each release has an accurate snapshot of the sources used at release time.
Create Release Branches
- Right-click on main in the Source Control Explorer, select Branching and Merging, Branch
- Define the Target Branch Name as $/BranchingScenarios/rel/v2, branch by label V2@$/BranchingScenarios, as shown, and click Branch
- Right-click on BranchingScenarios folder in the Source Control Explorer and select Get Latest Version
- Right-click on main in the Source Control Explorer, select Branching and Merging, Branch
- Define the Target Branch Name as $/BranchingScenarios/rel/v3 and click Branch.
- Right-click on BranchingScenarios folder in the Source Control Explorer and select Get Latest Version.
- It may have seemed like creating two branches from the same point in time.
- Remember that v2 was created from the label and then v3 was created from latest.
- We hope this helps to clarify how these branches differ and solidifies why the labeling is important.
- Right-click on main branch in Source Control Explorer, select Branching and Merging and View Hierarchy to view a visualization all the branches
What about the lock symbol?
Now that we have isolated branches representing the releases we can optionally lock them down by applying read-only access. The lock symbol shown on some of the guidance diagrams indicate such locked branches, which is not yet visualized in branching hierarchy models.
Review
- We explored the release isolation strategy, how to implement and why to use.
- We have not promoted the notion of the release branch being secure or having to be immutable. See guidance for discussions around this hot topic
Next up: Version Control Walkthrough Part 5 - Servicing & Release Isolation
Please send candid feedback!
We need your candid feedback. Here are some ways to connect with us:
- Add a comment below.
- Contact us on our blog.
References
- Version Control (ex Branching and Merging) Guide
- Version Control Guidance – Alternative Branching Strategies
- Version Control Guidance – Frequently Asked Questions
- Version Control Walkthrough (Branching Strategies) Part 1 - MAIN Only and Simplicity Rules
- Version Control Walkthrough (Branching Strategies) Part 2 - Development Isolation … welcome branching
- Version Control Walkthrough (Branching Strategies) Part 3 - Feature Isolation … a special!
A special thank you to everyone who laid the foundation this and ither version control guidance: Anil Chandr Lingam, Bijan Javidi, Bill Heys, Bob Jacobs, Brian Minisi, Clementino de Mendonca, Daniel Manson, Jahangeer Mohammed, James Pickell, Jansson Lennart, Jelle Druyts, Jens Suessmeyer, Krithika Sambamoorthy, Lennart Jansson, Mathias Olausson, Matt Velloso, Matthew Mitrik, Michael Fourie, Micheal Learned, Neno Loje, Oliver Hilgers, Sin Min Lee, Stefan Mieth, Taavi Koosaar, Tony Whitter, Willy-Peter Schaub, and the ALM Community.