Branches FAQ: How many branches do we need?
The short answer is ... as many as you wish. For example, (at least) one per developer.
Why? - Because :
- it provides an own playground for each developer
- the development can be done asynchronously: one doesn't have to wait until the other releases the lock on a version they both want to work on
- one is not forced to merge until one is ready/willing to do it
- the write access (especially in the MultiSite environment) to certain branches may be restricted, but one can always check-out any version from the whole version tree to an own branch (and then check it in there if changed).
Is it dangerous? - No, because:
- the "read" access to the whole element version tree is not restricted in any way, in both single-site and MultiSite environment. It means that everyone can see/select any versions located on any branch. So, every version on every branch is a shared resource.
- one can see all the existing branch types in the vob, and any version can be accessed by its full name, which is comprised of the Configuration Item family name, branch type name and the version number. (For example:
foo.c@@/br1/1). So, nothing is "hidden".
- one can select versions from different branches into a single view (workspace). The selection can be explicit (mentioning the branch type name):
element * .../someones_branch/LATEST, or implicit (e.g. just specifying a label, but not a particular branch type: then all the branches will be searched for the version with the specified label): element LABEL -mkbranch mybranch. As from any CI family there can be selected only one member at most, the view configuration is never ambiguous.
See the
here detailed information on how to setup "own" branches and collaborate with the others.
--
TatyanaShpichko - 27 Sep 2007