|
|
Deltas may be thought of as the nodes of a tree
in which the root node is the initial version of the file.
The root node (original file) is normally named 1.1
and successor deltas (nodes) are named 1.2, 1.3, 1.4, and so on.
The two numbers in these names are the first two
components of an SID, known as the `release'
and `level' numbers, respectively.
SCCS automatically names new deltas by incrementing
the level numbers whenever a delta is made.
In addition, if a release number is incremented, indicating a major change, the new release number is applied to all subsequent deltas. (An example of this evolutionary process is represented in ``Evolution of an SCCS file''.)
Evolution of an SCCS file
This is the normal sequential development of an SCCS file, with each delta dependent on the preceding deltas. Such a structure is called the trunk of an SCCS tree.
There are situations that require branching an SCCS tree. That is, changes are planned for a given delta that are not dependent on all previous deltas. For example, consider a program in production, at version 1.3, and for which development work on release 2 is already in progress. Release 2 may already have a delta in progress as shown in ``Evolution of an SCCS file''. Assume that a problem is reported in version 1.3 that cannot wait for correction until release 2. The changes necessary to correct the problem are applied as a delta to version 1.3. This creates a new version that will then be released to the user, but does not affect the changes being applied for release 2 (that is, deltas 1.4, 2.1, 2.2, and so on). This new delta is the first node of a new branch of the tree.
Branch delta names always have four SID components:
the same release number and level number as the trunk delta,
plus a branch number and sequence number.
The format is as follows:
release.level.branch.sequence
The branch number of the first delta branching off any trunk delta is always 1, and its sequence number is also 1. For example, the full SID for a delta branching off trunk delta 1.3 will be 1.3.1.1. As other deltas on that same branch are created, only the sequence number changes: 1.3.1.2, 1.3.1.3, and so forth. This is shown in ``Tree structure with branch deltas'':
Tree structure with branch deltas
The branch number is incremented only when a delta is created that starts a new branch off an existing branch, as shown in ``Extended branching concept''. As this secondary branch develops, the sequence numbers of its deltas are incremented (1.3.2.1, 1.3.2.2, and so on), but the secondary branch number remains the same.
Extended branching concept
The concept of branching may be extended to any delta in the tree, and the numbering of the resulting deltas proceeds as shown here. SCCS allows the generation of complex tree structures. Although this capability has been provided for certain specialized uses, the SCCS tree should be kept as simple as possible.