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:
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!