NAME
sccsfile — format of SCCS file
DESCRIPTION
An SCCS file is an ASCII file consisting of six logical parts:
- checksum
Sum of all characters in the file except the first line.
- delta table
Contains information about each delta.
- user names
Login names and/or numerical group
IDs
of users who are allowed to add deltas.
- flags
Definitions of internal keywords.
comments
Arbitrary descriptive information about the file.
- body
Actual text lines intermixed with control lines.
Throughout an SCCS
file there are lines beginning with the ASCII SOH
(start of heading) character (octal 001).
This character is hereafter referred to as the
control character
and is represented graphically as
@.
Any line described below that is not depicted as beginning
with the control character is prevented
from beginning with the control character.
All lines in the SCCS file are limited to
BUFSIZ
(defined in
<stdio.h>)
characters in length.
Entries of the form
DDDDD
represent a five-digit string (a number between 00000 and 99999).
The following describes each logical part of an
SCCS
file detail:
- Checksum
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 in the first line.
The
@h
sequence provides a
magic number
consisting of the two bytes 0x01 and 0x68.
(Other versions of UNIX-like operating systems usually use this same value
but it may be displayed or documented as a single number with a different
byte order.)
- Delta table
The delta table consists of a variable number of entries of the form:
@s DDDDD/DDDDD/DDDDD
@d <type> <SID> yr/mo/da hr:mi:se <pgmr> DDDDD DDDDD
@i DDDDD ...
@x DDDDD ...
@g DDDDD ...
@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
(currently, normal:
D,
and
removed:
R),
the
SID
(SCCS ID) of the delta,
the date and time when the delta was created,
the login 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 are optional.
The
@m
lines (optional) each contain one
MR
(modification request)
number associated with the delta;
the
@c
lines contain comments associated with the delta.
The
@e
line ends the delta table entry.
- User names
The list of login names and/or numerical group
IDs
of users who are allowed to add deltas to the file, separated by new-lines.
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.
Any line starting with a
!
prohibits the specified group or user from making deltas.
- Flags
Keywords 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:
@f t <type of program>
@f v <program name>
@f i <keyword string>
@f b
@f m <module name>
@f f <floor>
@f c <ceiling>
@f d <default-sid>
@f n
@f j
@f l <lock-releases>
@f q <user defined>
@f z <reserved for use in interfaces>
The above flags function as follows:
- t
Defines the replacement for the
%Y%
identification keyword.
- v
Controls prompting for
MR
numbers in addition to comments.
If the optional text is present, it defines an
MR
number-validity checking program.
- i
Controls the warning/error aspect of the ``No id keywords'' message.
When the
i
flag is not present, the message is only a warning; when the
i
flag is present, this message causes a fatal error (a
get
on the file fails, or the delta is not made).
- b
When the
b
flag is present, the
-b
keyletter can be used on the
get
command to cause a branch in the delta tree.
- m
Defines the first choice for the replacement text of the
%M%
identification keyword.
- f
Defines the ``floor'' release;
the release below which no deltas can be added.
- c
Defines the ``ceiling'' release;
the release above which no deltas can be added.
- d
Defines the default
SID
to be used when none is specified on a
get
command.
- n
Causes
delta
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 (such as, when delta 5.1 is made after delta 2.7, releases 3 and
4 are skipped).
The absence of the
n
flag causes skipped releases to be completely empty.
- j
Causes
get
to allow
concurrent edits of the same base
SID.
See
admin(1)
for restrictions.
- l
Defines a
list
of releases that are
locked
against editing (
get(1)
with the
-e
keyletter).
- q
Defines the replacement for the
%Q%
identification keyword.
- z
Used in certain specialized interface programs.
- Comments
Arbitrary text is surrounded by the bracketing lines
@t
and
@T.
The comments section typically contains a description of the file's purpose.
- 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:
- Type
Represented By:
- insert
@I DDDDD
- delete
@D DDDDD
- end
@E DDDDD
The digit string is the serial number corresponding to the delta for the
control line.
WARNINGS
SCCS files can be any length,
but the number of lines in the text file itself cannot exceed 99,999 lines.