View to modify an old configuration

This config spec allows developers to modify a configuration defined with version labels:
(1)
element * CHECKEDOUT
(2)
element * .../r1_fix/LATEST
(3)
element * R1.0 –mkbranch r1_fix
Note the following points about the configuration:
  • Elements can be checked out (Rule 1).
  • The checkout command creates a branch named r1_fix at the initially selected version (the auto-make-branch clause in Rule 3).

A key aspect of this scheme is that the same branch name, r1_fix, is used in every modified element. The only administrative overhead is the creation of a single branch type, r1_fix, with the mkbrtype command.

This config spec is efficient. Two rules (Rules 2 and 3) configure the appropriate versions of all elements:
  • For elements that have been modified, this version is the most recent on the r1_fix subbranch (Rule 2).
  • For elements that have not been modified, this version is the one labeled R1.0 (Rule 3).
The following figure illustrates these elements.
Figure 1: Making a change to an old version

The version trees of the modified and not modified views of an unnamed element are shown.

The r1_fix branch is a subbranch of the main branch. But Rule 2 handles the more general case, too. The ... wildcard allows the r1_fix branch to occur anywhere in the version tree of any element, and at different locations in the version trees of different elements.