sccsfile - format of an SCCS history file
An SCCS file is an ASCII file consisting of six logical parts: the checksum, the delta table (a log containing version information and statistics about each delta), usernames (login names and/or group IDs of users who may add deltas), flags (definitions of internal keywords), comments (arbitrary descriptive information about the file), and the body (the actual text lines intermixed with control lines). Each section is described in detail below.
Throughout an SCCS file there are lines which begin with the ASCII SOH (start of heading) character (octal 001). This character is hereafter referred to as the control character, and will be represented as '@'. If a line described below is not depicted as beginning with the control character, it cannot do so and still be within SCCS file format.
Entries of the form ddddd represent a five digit string (a number between 00000 and 99999).
The checksum is the first line of an SCCS file. The form of the line is:
The value of the checksum is the sum of all characters, except those contained in the first line. The @h provides a magic number of (octal) 064001.
The delta table consists of a variable number of entries of the form:
@s inserted/deleted/unchanged @d type sid yr/mo/da hr:mi:se username serial-number \ predecessor-sn @i include-list @x exclude-list @g ignored-list @m mr-number . . . @c comments . . . . . . @e
The first line (@s) contains the number of lines inserted/deleted/unchanged respectively. The second line (@d) contains the type of the delta (normal: D and removed: R), the SCCS ID of the delta, the date and time of creation of the delta, the user-name corresponding to the real user ID at the time the delta was created, and the serial numbers of the delta and its predecessor, respectively. The @i, @x, and @g lines contain the serial numbers of deltas included, excluded, and ignored, respectively. These lines do not always appear.
The @m lines (optional) each contain one MR number associated with the delta. The @c lines contain comments associated with the delta.
The @e line ends the delta table entry.
The list of user-names and/or numerical group IDs of users who may add deltas to the file, separated by NEWLINE characters. The lines containing these login names and/or numerical group IDs are surrounded by the bracketing lines @u and @U. An empty list allows anyone to make a delta.
Flags are keywords that are used internally (see admin(1) for more information on their use). Each flag line takes the form:
@f flag optional text
The following flags are defined in order of appearance: :RS
@f t type-of-program Defines the replacement for the 11:31:49 ID keyword. @f v program-name Controls prompting for MR numbers in addition to comments. If the optional text is present, it defines an MR number validity checking program. @f i Indicates that the 'No id keywords' message is to generate an error that terminates the SCCS command. Otherwise, the message is treated as a warning only. @f b Indicates that the -b option may be used with the SCCS get command to create a branch in the delta tree. @f m module-name Defines the first choice for the replacement text of the sccsfile.5 ID keyword. @f f floor Defines the "floor" release, that is, the release below which no deltas may be added. @f c ceiling Defines the "ceiling" release, that is, the release above which no deltas may be added. @f d default-sid The d flag defines the default SID to be used when none is specified on an SCCS get command. @f n The n flag enables the SCCS delta command to insert a "null" delta (a delta that applies no changes) in those releases that are skipped when a delta is made in a new release (for example, when delta 5.1 is made after delta 2.7, releases 3 and 4 are skipped). @f j Enables the SCCS get command to allow concurrent edits of the same base SID. @f l lock-releases Defines a list of releases that are locked against editing. @f q user-defined Defines the replacement for the ID keyword. @f e 0|1 The e flag indicates whether a source file is encoded or not. A 1 indicates that the file is encoded. Source files need to be encoded when they contain control characters, or when they do not end with a NEWLINE. The e flag allows files that contain binary data to be checked in.
Arbitrary text surrounded by the bracketing lines @t and @T. The comments section typically will contain a description of the file's purpose.
The body consists of text lines and control lines. Text lines do not begin with the control character, control lines do. There are three kinds of control lines: insert, delete, and end, represented by:
@I ddddd @D ddddd @E ddddd
respectively. The digit string is the serial number corresponding to the delta for the control line.
admin(1), delta(1), get(1), prs(1)
|Heirloom Development Tools||SCCSFILE (5)||2/1/07|