Share via


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. image

Create Release Branches

  • Right-click on main in the Source Control Explorer, select Branching and Merging, Branch
    image
  • Define the Target Branch Name as $/BranchingScenarios/rel/v2, branch by label V2@$/BranchingScenarios, as shown, and click Branch
    image
  • 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
    image

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. image

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 Winking smile

Next up: Version Control Walkthrough Part 5 - Servicing & Release Isolation


Please send candid feedback!

image

We need your candid feedback. Here are some ways to connect with us:

  • Add a comment below.
  • Contact us on our blog.

References


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.