Advanced Scenario - Merging HF changes to Release

Oct 8, 2010 at 10:31 AM

In the advance scenario it says:

 

RELEASE tree (i.e. SP, HOTFIX, and RELEASE) are branched from MAIN at the same time to create MAINSPHOTFIXRELEASE parent/child relationship.

Check-in based on which release the change applies to (e.g. Hotfixes are checked into the HOTFIX branch).

Changes in HOTFIX and SP branches merge one-way through intermediate branches to MAIN (HOTFIXSPMAIN).

I am confused... if the Release branch is created at the same time as the HF branch, before any changes are made to the HF branch and there is no merging allowed from HF branch to Release how do the changes checked into the HF branch get to the Release branch for building the release?

Oct 8, 2010 at 12:21 PM

Hello Kevin,

I’ve tried in so many analogies to explain my team this concept but with no luck J

I’ll share it with you here in hopes of practicing my convincing/explanation technic!

HF, SP, Release branches are all “release” vehicles.

Maybe, Release is the overloaded term here. Maybe if you call them SP,HF,RTM then you can appreciate that RTM is to deploy the v.NEXT as it was at RTM time.

From SP you will release (see, no worries about using the term here) Service Packs and form HF you would release Hot Fixes.

Another idea with this branch strategy is that SP,HF,RTM trees are short lived until the v.NEXT from Main releases at which point you create a NEW tree.

But, before your v.Next happens the tree structure allows you to NOT miss HF fixes because they will have to be delivered to SP before reaching MAIN, hence SP will contain the HF.

MAIN ---------------------------------------------------------------------à

| ^ ^ ^ ^ ^

V | | | | |

SP -------------------------------------------------à

| ^ ^

V | | |

HF ------------------------à

| ^

V |

RTM ---*--à

The * depicts a showstopper before your RTM bits went out

- hth,

Ramon

Developer
Oct 8, 2010 at 9:01 PM

Kevin,

You are correct that the ServicePack, Hotfix, and Release (RTM) branches are all created at the same time. The timing is key. Only when the code is *Ready to Release (RTM)*, should you create this set of Release branches. Once shipped, many will make the lowest level branch (Release or RTM) read-only to preserve the state of the code that was released. The Service Pack and Hotfix branches are for servicing the code after release. Any hotfixes or Service Packs are typically shipped from the branch in which the changes are made. They are oftern merged back to the Main branch so the fixes will be part of v.Next. But you don't want to merge hotfixes and / or Service Packs down to the Release (RTM) branch.

Regards,
Bill Heys
VS ALM Ranger