Version Control Walkthrough (Branching Strategies) Part 5 - Servicing & Release Isolation

Continued from Version Control Walkthrough (Branching Strategies) Part 4 - Release Isolation … audit alarm we explore service and release isolation.

Goal

Explore the Servicing and Release Isolation strategy introduces servicing branches, which enables concurrent servicing management of bug fixes and service packs. This strategy evolves from the Release Isolation strategy, or more typically from the Development and Release Isolation strategy.

Context

We will finish this walk-through with an easy and quick exercise. We will focus on demonstrating the concepts, allowing you to expand the concepts to your required level of granularity and complexity as and when needed.

Your team is notified that a servicing model for customers to upgrade to the next major release, i.e. v1 –> v2 is implemented and, in addition, the servicing model supports additional service packs per release, starting with v3. image

  • NOTE - We are going to use an arbitrary naming convention for the branches in this exercise, as we have done before. You need to invest time in defining a consistent naming convention that suits your organization and environment before you perform a branch action. Renaming branches is atypical and as an alternative you could proactively plan and introduce the servicing branch with v4 instead of injecting it into the v3 hierarchy.
  • CAUTION – Renaming branches is technically feasible, but can introduce traceability and migration challenges in the future if not done consistently. This short and simple exercise demonstrates how easyit is to quickly introduce more branches, which dramatically increase your merge maintenance and cost.
    Example forum thread: Renaming branches without loosing history

Introduce the Servicing Branch

Rename release to servicing

  • Rename the v3 branch in Solution Control Explorer to v3 servicing.image 
  • Right-click on servicing branch, select Check In Pending Changes and check in.

Add release branch

  • Right-click on servicing branch, select Branching and Merging and Branch
  • Define the Target Branch Name as $/BranchingScenarios/rel/v3 release
    image
  • Select Branch and Yes when promoted to continue to branch
  • Right-click on BranchingScenarios folder and perform a Get Latest Version.

View hierarchy

  • Right-click on main branch in Solution Control Explorer, select Branching and Merging, and View Hierarchy
    image

Review

We explored the servicing and release isolation strategy, how to implement, intentionally using a very simple branching scenario. Remember that we discourage the use of branches to isolate servicing, but your requirements may force you to deploy this branching strategy and release a service pack.

That’s all folks for this series!


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.