SCCS(1) General Commands Manual SCCS(1)
sccs - front end for the Source Code Control System (SCCS)
sccs [ -r ] [ -drootprefix ] [ -psubdir ]
subcommand [ option ... ] [ filename ... ]
The sccs command is a comprehensive, straightforward front end to the
various utility programs of the Source Code Control System (SCCS).
sccs applies the indicated subcommand to the history file associated
with each of the indicated files.
The name of an SCCS history file is derived by prepending the `s.'
prefix to the filename of a working copy. The sccs command normally
expects these `s.files' to reside in an SCCS subdirectory. Thus, when
you supply sccs with a filename argument, it normally applies the sub-
command to a file named s.filename in the SCCS subdirectory. If file-
name is a pathname, sccs looks for the history file in the SCCS subdi-
rectory of that file's parent directory. If filename is a directory,
however, sccs applies the subcommand to every s.file file it contains.
Thus, the command:
sccs get program.c
would apply the get subcommand to a history file named:
while the command:
sccs get SCCS
would apply it to every s.file in the SCCS subdirectory.
Options for the sccs command itself must appear before the subcommand
argument. Options for a given subcommand must appear after the subcom-
mand argument. These options are specific to each subcommand, and are
described along with the subcommands themselves (see Subcommands,
The sccs command also includes the capability to run ``setuid'' to pro-
vide additional protection. However this does not apply to subcommands
such as sccs-admin(1), since this would allow anyone to change the
authorizations of the history file. Commands that would do so always
run as the real user.
-r Run sccs with the real user ID, rather than set to the effective
Define the root portion of the pathname for SCCS history files.
The default root portion is the current directory. Note: root-
prefix is prepended to the entire filename argument, even if
filename is an absolute pathname. -d overrides any directory
specified by the PROJECTDIR environment variable (see ENVIRON-
Define the (sub)directory within which a history file is expect-
ed to reside. SCCS is the default. (See EXAMPLES, below).
Many of the following sccs subcommands invoke programs that reside in
/usr/sccs. Many of these subcommands accept additional arguments that
are documented in the reference page for the utility program the sub-
admin Modify the flags or checksum of an SCCS history file. Refer to
sccs-admin(1) for more information about the admin utility.
While admin can be used to initialize a history file, you may
find that the create subcommand is simpler to use for this pur-
cdc -rsid [ -y[comment] ]
Annotate (change) the delta commentary. Refer to sccs-cdc(1).
Note: the fix subcommand can be used to replace the delta,
rather than merely annotating the existing commentary.
-rsid Specify the SCCS delta ID (SID) to which the
change notation is to be added. The SID for a
given delta is a number, in Dewey decimal format,
composed of two or four fields: the release and
level fields, and for branch deltas, the branch
and sequence fields. For instance, the SID for
the initial delta is normally 1.1.
Specify the comment with which to annotate the
delta commentary. If -y is omitted, sccs prompts
for a comment. A null comment results in an empty
check [-b] [-u[username]]
Check for files currently being edited. Like info and tell, but
returns an exit code, rather than producing a listing of files.
check returns a non-zero exit status if anything is being edit-
-b Ignore branches.
Only check files being edited by you. When user-
name is specified, only check files being edited
by that user.
Remove everything in the current directory that can be retrieved
from an SCCS history. Does not remove files that are being
-b Do not check branches to see if they are being
edited. `clean -b' is dangerous when branch ver-
sions are kept in the same directory.
comb Generate scripts to combine deltas. Refer to sccs-comb(1).
create Create (initialize) history files. create performs the follow-
o Renames the original source file to ,program.c in the current
o Create the history file called s.program.c in the SCCS subdi-
o Performs an `sccs get' on program.c to retrieve a read-only
copy of the initial version.
deledit [-s] [-y[comment]]
Equivalent to an `sccs delta' and then an `sccs edit'. deledit
checks in a delta, and checks the file back out again, but
leaves the current working copy of the file intact.
-s Silent. Do not report delta numbers or statis-
Supply a comment for the delta commentary. If -y
is omitted, delta prompts for a comment. A NULL
comment results in an empty comment field for the
delget [-s] [-y[comment]]
Perform an `sccs delta' and then an `sccs get' to check in a
delta and retrieve read-only copies of the resulting new ver-
sion. See the deledit subcommand for a description of -s and
-y. sccs performs a delta on all the files specified in the ar-
gument list, and then a get on all the files. If an error oc-
curs during the delta, the get is not performed.
delta [-s] [-y[comment]]
Check in pending changes. Records the line-by-line changes in-
troduced while the file was checked out. The effective user ID
must be the same as the ID of the person who has the file
checked out. Refer to sccs-delta(1). See the deledit subcom-
mand for a description of -s and -y.
diffs [-C] [-cdate-time] [-rsid] diff-options
Compare (in diff(1) format) the working copy of a file that is
checked out for editing, with a version from the SCCS history.
Use the most recent checked-in version by default. The diffs
subcommand accepts the same options as diff, with the exception
that the -c option to diff must be specified as -C.
-C Pass the -c option to diff.
Use the most recent version checked in before the
indicated date and time for comparison. date-time
takes the form: yy[mm[dd[hh[mm[ss]]]]]. Omitted
units default to their maximum possible values;
that is -c7502 is equivalent to -c750228235959.
-rsid Use the version corresponding to the indicated
delta for comparison.
edit Retrieve a version of the file for editing. `sccs edit' ex-
tracts a version of the file that is writable by you, and cre-
ates a p.file in the SCCS subdirectory as lock on the history,
so that no one else can check that version in or out. ID key-
words are retrieved in unexpanded form. edit accepts the same
options as get, below.
enter Similar to create, but omits the final `sccs get'. This may be
used if an `sccs edit' is to be performed immediately after the
history file is initialized.
Revise a (leaf) delta. Remove the indicated delta from the SCCS
history, but leave a working copy of the current version in the
directory. This is useful for incorporating trivial updates for
which no audit record is needed, or for revising the delta com-
mentary. fix must be followed by a -r option, to specify the
SID of the delta to remove. The indicated delta must be the
most recent (leaf) delta in its branch. Use fix with caution
since it does not leave an audit trail of differences (although
the previous commentary is retained within the history file).
get [-ekmps] [-cdate-time] [-rsid]
Retrieve a version from the SCCS history. By default, this is a
read-only working copy of the most recent version; ID keywords
are in expanded form. Refer to sccs-get(1).
-e Retrieve a version for editing. Same as sccs ed-
-k Retrieve a writable copy but do not check out the
file. ID keywords are unexpanded.
-m Precede each line with the SID of the delta in
which it was added.
-p Produce the retrieved version on the standard out-
put. Reports that would normally go to the stan-
dard output (delta ID's and statistics) are di-
rected to the standard error.
-s Silent. Do not report version numbers or statis-
Retrieve the latest version checked in prior to
the date and time indicated by the date-time argu-
ment. date-time takes the form:
-rsid Retrieve the version corresponding to the indicat-
Supply more information about SCCS diagnostics. help displays a
brief explanation of the error when you supply the code dis-
played by an SCCS diagnostic message. If you supply the name of
an SCCS command, it prints a usage line. help also recognizes
the keyword stuck. Refer to sccs-help(1).
info [-b] [-u[username]]
Display a list of files being edited, including the version num-
ber checked out, the version to be checked in, the name of the
user who holds the lock, and the date and time the file was
-b Ignore branches.
Only list files checked out by you. When username
is specified, only list files checked out by that
print Print the entire history of each named file. Equivalent to an
`sccs prs -e' followed by an `sccs get -p -m'.
prs [-el] [-cdate-time] [-rsid]
Peruse (display) the delta table, or other portion of an s.file.
Refer to sccs-prs(1).
-e Display delta table information for all deltas
earlier than the one specified with -r (or all
deltas if none is specified).
-l Display information for all deltas later than, and
including, that specified by -c or -r.
Specify the latest delta checked in before the in-
dicated date and time. The date-time argument
takes the form: yy[mm[dd[hh[mm[ss]]]]].
-rsid Specify a given delta by SID.
prt [-y] Display the delta table, but omit the MR field (see sccs-
file(5) for more information on this field). Refer to sccs-
-y Display the most recent delta table entry. The
format is a single output line for each filename
argument, which is convenient for use in a pipe-
line with awk(1) or sed(1V).
Remove the indicated delta from the history file. That delta
must be the most recent (leaf) delta in its branch. Refer to
sccsdiff -rold-sid -rnew-sid diff-options
Compare two versions corresponding to the indicated SIDs
(deltas) using diff. Refer to sccs-sccsdiff(1).
tell [-b] [-u[username]]
Display the list of files that are currently checked out, one
filename per line.
-b Ignore branches.
Only list files checked out to you. When username
is specified, only list files check out to that
unedit "Undo" the last edit or `get -e', and return the working copy to
its previous condition. unedit backs out all pending changes
made since the file was checked out.
unget Same as unedit. Refer to sccs-unget(1).
val Validate the history file. Refer to sccs-val(1).
what Display any expanded ID keyword strings contained in a binary
(object) or text file. Refer to what(1) for more information.
If the environment variable PROJECTDIR is set to contain an absolute
pathname (beginning with a slash), sccs searches for SCCS history files
in the directory given by that variable. If PROJECTDIR does not begin
with a slash, it is taken as the name of a user, and sccs searches the
src or source subdirectory of that user's home directory for history
sccs converts the command:
sccs -d/usr/src/include get stdio.h
sccs -pprivate get include/stdio.h
To initialize the history file for a source file named program.c: make
the SCCS subdirectory, and then use `sccs create':
example% mkdir SCCS
example% sccs create program.c
After verifying the working copy, you can remove the backup file that
starts with a comma:
example% diff program.c ,program.c
example% rm ,program.c
To check out a copy of program.c for editing, edit it, and then check
it back in:
example% sccs edit program.c
new delta 1.2
example% vi program.c
your editing session
example% sccs delget program.c
comments? clarified cryptic diagnostic
To retrieve a file from another directory into the current directory:
example% sccs get /usr/src/sccs/cc.c
example% sccs -p/usr/src/sccs/ get cc.c
To check out all files under SCCS in the current directory:
example% sccs edit SCCS
To check in all files currently checked out to you:
example% sccs delta `sccs tell -u`
SCCS SCCS subdirectory
SCCS/d.file temporary file of differences
SCCS/p.file lock (permissions) file for checked-out versions
SCCS/q.file temporary file
SCCS/s.file SCCS history file
SCCS/x.file temporary copy of the s.file
SCCS/z.file temporary lock file
/usr/sccs/* SCCS utility programs
awk(1), diff(1), sccs-admin(1), sccs-cdc(1), sccs-comb(1), sccs-
delta(1), sccs-get(1), sccs-help(1), sccs-prs(1), sccs-rmdel(1), sccs-
sact(1), sccs-sccsdiff(1), sccs-unget(1), sccs-val(1), sed(1V),
There is no sact subcommand to invoke /usr/sccs/sact (see sccs-
sact(1)). However, the info subcommand performs an equivalent func-
2 August 1988 SCCS(1)