Branch in Multiuser Development
Branching is a further refinement of the merging development process.
Branching can provide higher efficiencies over large development teams that have overlapping releases, but it requires significant administrative overhead.
This section contains the following topics:
About Branching
In branching, developers work on private branches to isolate their code from other developers and merge changes back to the main branch.
Different strategies can be followed, depending on the size of the development team.
In the Simple Development Model, all development occurs on a single main branch. This strategy has the following characteristics:
-
Only for emergency fixes
-
Checkouts might not be the most current code
-
Carries a stability risk for the mainline branch
The figure shows the Simple Development Model.
In the Small Team Development Model, development occurs on a single Dev branch, with a separate Main branch strictly for releases. This strategy has the following characteristics:
-
The Mainline is the official release branch
-
Development occurs on a separate branch
-
Stable code is merged back to Main at key milestones
-
Branches are synchronized periodically
The figure shows the Small Team Development Model.
In the Multi-Team, Multi-Release Model, development occurs on multiple Dev branches, again with a separate Main branch strictly for releases. This strategy has the following characteristics:
-
Supports more efficiency over disparate teams
-
Development occurs on separate branches
-
Stable code is merged back to Main at key milestones
-
Branches are synchronized periodically
The figure shows the Multi-Team, Multi-Release Model.
Use the Multi-Team, Multi-Release Model
Using complex branching strategies requires attentive organization of repository files, as well as altering the Multiuser setting in the Administration Tool.
The following provides an overview of the required steps.