View to implement multiple-level branching

This config spec implements and enforces consistent multiple-level branching.
(1)
element * CHECKEDOUT
(2)
element * .../major/autumn/LATEST
(3)
element * .../major/LATEST –mkbranch autumn
(4)
element * BASELINE_X –mkbranch major
(5)
element * /main/LATEST –mkbranch major
A view configured with this config spec is appropriate in the following situation:
  • All changes from the baseline designated by the BASELINE_X version label must be made on a branch named major.
  • Moreover, you are working on a special project, whose changes are to be made on a subbranch of major, named autumn.

The following figure shows what happens in such a view when you check out an element that has not been modified since the baseline.

Figure 1: Multiple-level auto-make-branch

From left to right, three rules, 4, 3, and 2, are illustrated by three version trees.

  1. After an element is checked out, the mkbranch clause in Rule 4 creates the major branch at the BASELINE_X version.
  2. The mkbranch clause in Rule 3 creates the autumn branch at \main\major\0.
  3. When the checkout operation finishes, Rule 2 applies; the most recent version, \main\major\autumn\0, is checked out.

For more information about multiple-level branching, see the config_spec and checkout reference pages.