Describes the format of a Source Code Control System (SCCS) file.
The SCCS file is an ASCII file
consisting of the following logical parts:
Checksum | The logical sum of all characters except the characters in the first line |
Delta table | Information about each delta including type, SCCS identification (SID) number, date and time of creation, and comments about the delta |
User Names | Login names, group names, or numerical group IDs of users who are allowed to add or remove deltas from the SCCS file |
Header flags | Flags defining how some SCCS commands work with the SCCS file, or defining values for identification keywords in the file |
Comments | Descriptive information about the file |
Body | The actual text lines intermixed with control lines |
Note: Several lines in an SCCS file begin with the ASCII SOH (start-of-heading) character (octal 001). This character is called the control character and is represented graphically as the @ (at sign) in the following text. Any line described in the following text that does not begin with the control character contains text from the source file. Text lines cannot begin with the control character.
The checksum is the first line of an SCCS file. This line has the following format:
The control character and
variables in the checksum line have the following meanings:
Each time a group of changes, known as a delta, is made to an SCCS file, the delta table creates a new entry. Each entry contains descriptive information about the delta. The @s (at sign, letter s) character defines the beginning of a delta table entry, and the @e (at sign, letter e) character defines the end of the entry. For each delta created, there is a delta table entry in the following format:
@s NumberLinesInserted/NumberLinesDeleted/NumberLinesUnchanged @d DeltaType SID Date Time UserID Number PreNumber @i NumbersIncluded . . . @x NumbersExcluded . . . @g NumbersIgnored . . . @m ModificationRequestNumber @c Comments . . .
The control characters and
variables in the delta table entries have the following meanings:
@s | Designates the first line of each entry, which contains the number of lines inserted, deleted, and unchanged from the previous delta. |
@d | Designates the second line of each entry, which contains the following
variables:
|
@i | Indicates the serial numbers of the deltas that are included in the creation of this delta by using the get command with the -i flag. This line can contain several delta numbers and is optional. |
@x | Indicates the serial numbers of the deltas that were excluded from the creation of this delta by using the get command with the -x flag. This line can contain several delta numbers and is optional. |
@g | Indicates the serial numbers of the deltas that were ignored in the creation of this delta by using the delta command with the -g flag. This line can contain several delta numbers and is optional. |
@m | Indicates a modification request (MR) number associated with the delta. There can be several MR lines in an SCCS file, each one containing a different MR number. These lines are optional. |
@c | Comment lines associated with the delta. There can be several comment lines in an SCCS file. These lines are optional. |
@e | Ends the delta table entry. |
This section of the file contains
the list of login names, group names, or numerical group IDs of users who can
add deltas to the file. The names and IDs are separated by new-line
characters. This section uses the following control characters:
An empty list allows any user to make a delta. The list is changed using the admin command with the -a or -e flag.
Flags control commands and define keywords used internally in the SCCS. Header flags are set using the admin command with various flags. The format of each line is:
@f Flag Text
The control character and
variables in the header flags section have the following meanings:
When comments are taken from a
file containing descriptive text by using the admin command with
the -t flag option, the contents of that file are displayed in the
comments section. Typically, the comments section contains a
description of the purpose of the entire file and uses the following control
characters:
The body consists of two types of lines: control lines and text lines. Control lines bracket text lines. The text lines contain pieces of text that were inserted or deleted for a particular version of the file. The control lines that bracket a piece of text indicate whether a piece of text was inserted or deleted, and in what version. When a particular version of a file is created from the SCCS file, the control lines identify the pieces of text that should be added or deleted for that version of the file.
Control lines can be nested
within one another, so the same portion of text can be bracketed by several
sets of control lines. The body of a long SCCS file can be very
complicated. The SCCS commands, however, provide a better way to
understand the different versions of an SCCS file.
Within the text are also identification keywords that are specific to the SCCS file system. These keywords represent identifying information about the SCCS file. When using the get command without the -e or -k flag, these keywords will be replaced by their values. Because different versions have different identifying information, the identification keywords provide an easy way for the SCCS file system to provide the correct identifying information for any version of the file requested by the get command. Keywords can be used to provide several kinds of information:
Keyword | Value |
---|---|
11 | Module name; the value of the m header flag in the SCCS file |
1.1 | SID (1, 1, 0, 0) |
1 | Release |
1 | Level |
0 | Branch |
0 | Sequence |
Keyword | Value |
---|---|
/family/aix/vc/8/9/7/3/s.11 | SCCS file name |
/family/aix/vc/8/9/7/3/s.11 | Full path name of the SCCS file |
Keyword | Value |
---|---|
| Value of the -q header flag in the SCCS file |
| Module type; the value of the -t header flag in the SCCS file |
Keyword | Value |
---|---|
562 | The current line number. This keyword identifies message output by the program. It should not be used on every line to provide sequence numbers. |
Keyword | Value |
---|---|
@(#) 11 1.1@(#) | A shorthand notation for constructing what strings for program files specific to other
operating systems. Its value equals the following key letters:
@(#) 11 1.1@(#) = @(#) 11 1.1@(#) |
src/idd/en_US/files/aixfiles/sccsfile.ide, idaixfiles, idd510 | A shorthand notation for constructing what strings for program
files specific to this operating system. Its value is the characters
and key letters:
src/idd/en_US/files/aixfiles/sccsfile.ide, idaixfiles, idd510 = @(#)11<horizontal-tab>1.1 |
@(#) | The 4-character string @(#) (at sign, left parenthesis, pound sign, right parenthesis) recognized by the what command. |
Source Code Control System (SCCS) Overview in AIX 5L Version 5.1 General Programming Concepts: Writing and Debugging Programs contains general information about the SCCS file system.
The admin command, delta command, get command, prs command, rmdel command, what command.