This project has moved and is read-only. For the latest updates, please go here.

Parallel SPs and Hotifixes - A little bit confused about service branches

Oct 19, 2011 at 7:45 PM

I'm a little bit confused with respect to the Branching Guidance 2010 with respect to service branches. Can anyone give me some clarity on the following?

I understand, conceptually, how in the Advanced Branching Strategy once Main is stabalized and deemed ready for release (E.g. v1.0) that three branches are created with the folloing Parent/Child relationships:

Main->Service Pack v1.0->Hotfix v1.0->Release v1.0

Rlease is read only. Hotifixes for the 1.0 release are implemented in the Hotfix branch, and are merged (RI) up to the Service Pack v1.0 branch. Additional Service Pack implementation work occurs in the Service Pack v1.0 branch, and merges (RI) up to Main.

I have a few questions about this strategy:

Service Packs
1.Let's say that SP1 for v1.0 is ready for release, is it intended that a service pack release be branched as well? E.G. Main->Service Pack v1.0->Service Pack v1.0 SP1? Making aSP1 a child of Service Pack v1.0, and a peer of Hotfix v1.0. Or, is it intended that the SP1 release be built from the Service Pack v1.0 branch and subsequently Service Pack v1.0 is where SP2 is implemented, meaning that there's no preserved branch for SPs the same way there is for major releases?

2. Does the Advanced Branch Strategy consider parallel development of multiple Service Packs? If so, how? The situation I'm thinking of is where development of SP1 is in-progress, but there's an enhancement/feature planned to be included in SP2. How can SP1 and SP2 be developed in parallel?


1. How is it intended that multiple hotifixes be developed and released from the Hotfix v1.0 branch? This is similar to my first question about Service Packs, but different in that a Hotfix branch may be responsible for several independant Hotfix relases (E.g. HF1, HF2, HF3 - each of which may be independent from each other).

2. Also similar to my second question on Service Packs - How can different, independent hotifxes be developed in parallel? Would that require separate specific branches for each hotfix? E.g. Main->ServicePack v1.0\Hotfixes v1.0->HF1 v1.0. I.E. specific hotfix branches are all children of Hotfix v1.0.

To me, using Service Pack v1.0 as the stabalization point for SPCurrent and SPNext makes sense SPCurrent would RI into Service Pack v1.0, and from there FI into SP2. However, this would seem to collide with the goal of service branches performing only RI merges up to Main. Using Hotfixes v1.0 as the stabalization/integration point for HFs doesn't appear to clash as hard with service branch goals, since HFs can often be assumed to be independant from each other (they would usually only RI up to the Hotfix v1.0 branch and not FI from the same). Or does the Advanced Branch strategy assume that all Hotifxes are dependant (i.e. HF3 includes HF2 which also includes HF1)?

Am I way off-base here on the intent/use of service branches? I think so - because what I'm describing above appears to be more complicated than what the Advanced Branching strategy describes.

Thanks in-advance for setting me straight!


Nov 25, 2011 at 5:30 PM

If you need to create two parallel Service Pack branches, you could branch the second SP branch from Main using the changeset in Main immediately before the branch for the first SP branch. This would make SP1 and SP2 siblings. Each would start with the same code that is in the Release branch at the time it was created.

Our approach, generally, is to build, test, and deploy service packs from these SP branches. Each SP branch, therefore would serve as its own archive.

Hotfixes are quite different from service packs. While service packs are thoroughly tested and distributed to all or most customers, hot fixes are quick fixes for a specific customer's problem and are not as exhaustively tested as service packs. As above, if you need to develop two hot fixes in parallel, you could consider creating two sibling hot fix branches by branching from a changeset in the parent service pack branch. I would not advocate an intermediate hot fix branch between the service pack branch and the hot fix branch.

Bill Heys
VS ALM Ranger