Service Branch in a Standard Industry Plan

I have a very simple question regarding a standard branch plan.

I understand branching, FI and RI, etc. I do not quite understand how to use the service desk in practice.

I understand that when the release time comes, I split Main โ†’ R1.SP1 (suppose this is my first release, for example), and then immediately branch R1.SP1 to R1. Then set R1 to read only. I fully understand and love this.

Here's what I donโ€™t understand: how and when are R1.SP1, R1.SP2, R1.SP3 created?

Do I return RI SP1 to the main one, and then deploy main to SP2 / 3 / n over time?

In other words, how are these future SPs populated with changes for their own release / deployment?

For example, if a client reports an error in R1, where can I check the code to make this change, and where can I check / commit the changed / fixed code? Do I go to branch SP1? (Since the R1 branch is read only). So what?

I suppose I ask, where does my supporting development take place to create future SPs for R1 and how are they created and prepared for their own releases / deployments?

A very simple step-by-step example scenario will be most helpful / appreciated.

Please, if my question is not clear, let me know and I will do my best to review it.

+2
source share
1 answer

Not a TFS specialist, but I read:

  • Developers only need to check once on the basis of which vehicle release (for example, corrections are included in the HOTFIX branch of the product).
  • No need for unreasonable mergers. Create a natural merge path to MAIN by creating a hierarchical branch structure based on your versions.
  • Reduce the risk of regression. By creating child / child relationship relationships between MAIN->SP-> and HOTFIX , branch changes are naturally merged into a future version (i.e. Hotfixes merge into the SP branch on the way to MAIN ), reducing the risk of errors in future releases.

After the release branches create changes from the MAIN , you should not merge ( FI ) into the release branches.
Changes must merge - one way - from RELEASE to MAIN .
In addition, changes should always be merged through intermediate branches (i.e. RELEASE โ†’ HOTFIX โ†’ SERVICEPACK โ†’ MAIN ) to ensure that bug fixes remain consistent in future releases .

Advanced branch plan

I think the last section explicitly mentions how the merge workflow should be executed as soon as the version is put into production.
It should return to the main one until it is consolidated enough to create a new set of ships (from the service where you choose the version to launch the new SPx to Hoyfix.spx, release.spx)


OP user1448758 points out an article in a comment Where can I fix a manufacturing defect? which says:

The RELEASE branch is a child of the HOTFIX or servicing , and not a separate branch structure. This allows you to have several sets of active releases (consisting of Service Pack, HOTFIX , RELEASE branches) for each of the minor or major releases that need to be supported in parallel .
The hotfix will be applied to the specific release in which the bug is detected and then merged (RI) with MAIN and, possibly, in the vNext development branches.

Since the development branches work on vNext after the release of vCurrent , I am preventing you from vCurrent defects found in vCurrent (post release) in the vNext development branch.
After releasing Sprint 1 you must fix the errors (post release) in Sprint 1 on the RELEASE side and fix the errors (pre-release) in Sprint 2 on development ( vNext ).

RELEASE is a child of HOTFIX . At the time of release, the contents of HOTFIX and the release match .
RELEASE is read-only and HOTFIX is available to fix defects compared to what was released.

The problem with inverting the structure is that you cannot move HOTFIX to MAIN without going through RELEASE , which means that you no longer have a copy of the code released .

+2
source

All Articles