sccs(1)sccs(1)Namesccs - Source Code Control System
Syntaxsccs [flags] command [command-option] [file] [sccs]
Description
SCCS is a source management system which maintains records of changes
made in files within that system. Records stating what the changes
were, why and when they were made, and who made them are kept for each
version. Previous versions can be recovered, and different versions
can be maintained simultaneously. SCCS also insures that two people
are not editing the same file at the same time.
The SCCS system has two levels of operation, a preprocessor called and
the traditional SCCS commands. The preprocessor provides an interface
with the more traditional SCCS commands, such as get, delta, and so
forth. The interface is a more user-friendly environment for the SCCS
user. Some of the commands are more intuitive, such as sccs edit
rather than the traditional get -e to retrieve a file for editing.
Some commands perform multiple operations, such as sccs delget which
performs a delta on the file, and then get the changed file back.
The preprocessor also restructures the method in which SCCS files are
stored and manipulated. In the traditional version of SCCS, files (s-
files, p-files, and so forth) are stored in the directory that contains
the g-files, unless an SCCS directory is explicitly defined with each
command. The preprocessor expects that an SCCS directory is available
within the directory that contains the g-files and that this directory
also contains the SCCS files. The SCCS directory is owned by providing
an additional level of security. This method also cleans up the direc‐
tory where the g-files are stored. One other important difference in
using the preprocessor is that the file specification is the name of
the g-file rather than the name of the s-file when invoking an SCCS
command. If SCCS is specified rather than the file name, the SCCS pre‐
processor handles this in the same manner as the traditional commands
handle it. Each s-file in the directory SCCS is acted upon as if
explicitly named. Please note that not all preprocessor commands per‐
mit this feature.
The traditional SCCS commands are also included for reference in SEE
ALSO. If the preprocessor is used, small discrepancies may exist due
to conflicts between the command parameters and the preprocessor param‐
eters.
SCCS stores all versions of each file along with the logged data about
each version in the s-file. Three major operations can be performed on
the s-file.
To retrieve a file for reading or printing use the following command:
sccs get [filename][sccs]
The latest version is retrieved and is NOT intended for edit.
To retrieve a file for edit use the following command:
sccs edit [filename][sccs]
The latest version is retrieved and only one person can edit a given
file at one time.
To merge a file back into the s-file use the following command:
sccs delta [filename][sccs]
This is a companion operation to the edit command (Step 2). A new ver‐
sion number is assigned. Comments explaining the changes are saved.
A delta consists of the changes made to a file, not the file itself.
All deltas to a given file are stored, enabling you to get a version of
the file that has selected deltas removed which gives you the option of
removing your selected changes later.
An SID is an identification number for a delta. It consists of two
parts, a release number and a level number. The release number nor‐
mally remains constant but can be changed when major changes in the
file are made. The level numbers represent each delta for a given
file. A SID can also be used to represent a version number of the
entire file.
To create all the source files in a given directory in SCCS format, run
the following shell script from csh:
mkdir SCCS save
chown sccs SCCS
foreach i (*.[.ch])
sccs admin -i$i $i
mv $i save/$i
end
Note that to run the command, you must be the superuser. However, the
Guide to the Source Code Control System describes a method for setting
up SCCS files that makes superuser privileges unnecessary.
To create a single source file in SCCS format, assuming the presence of
the SCCS directory, use the following command:
sccs create <filename>
Because the number and types of commands used within SCCS are many and
complex, the following quick reference table is included here. See the
Guide to the Source Code Control System for further explanations of
commands.
Flags
-d<dir> The <dir> represents a directory to search out of. It
should be a full pathname for general usage. For exam‐
ple, if <dir> is then a reference to the file becomes a
reference to
-p<path> Prepends <path> to the final component of the pathname.
By default, this is SCCS. For example, in the -d exam‐
ple above, the path then gets modified to In more common
usage (without the -d flag), would get modified to In
both cases, the gets automatically prepended.
-r Run as the real user.
Commands
These commands should all be preceded by
get Gets files for compilation (not for editing). Id key‐
words are expanded.
-e Gets a writable copy of the file.
-rSID Get specified version.
-p Send to standard output rather than to the
actual file.
-k Gets a writable copy of the file. Does not
expand id keywords.
-ilist Include list of deltas.
-xlist Exclude list of deltas.
-m Precede each line with SID of delta being cre‐
ated.
-cdate Do not apply any deltas created after date.
edit Gets files for editing. Id keywords are not expanded.
Should be matched with a delta command after editing.
-rSID Get specified version. If SID specifies a
release that does not yet exist, the highest
numbered delta is retrieved and the new delta
is numbered with SID
-b Create a branch.
-ilist Include list of deltas
-xlist Exclude list of deltas
delta Merge a file retrieved using edit back into the s-file.
Collect comments about why this delta was made.
unedit Remove a file that has been edited previously without
merging the changes into the s-file.
info Display a list of all files being edited.
-b Ignore branches.
-u[user] Ignore files not being edited by user .
check Same as info, except that nothing is printed if nothing
is being edited and exit status is returned.
prs Produces a report of changes to the named file. Time,
date, user, number of lines changed, the revision num‐
ber, and comments are listed for each delta.
create Create an s. file and do not remove the associated g-
file.
tell Same as info, except that only the file name of files
being edited is listed.
clean Remove all files that can be regenerated from the s-
file.
what Find and print id keywords.
admin Create or set parameters on s-files.
-ifile Create, using file as the initial contents.
-z Rebuild the checksum in case the file has been
corrupted.
-fflag Turn on the flag.
-dflag Turn off (delete) the flag .
-tfile Replace the text in the s-file with the con‐
tents of file. If file is omitted, the text
is deleted. Useful for storing documentation
or design and implementation documents to
insure distribution with the s-file.
Useful flags are:
b Allow branches to be made using the -b flag to
edit.
dSID Default SID to be used on a get or edit.
i Cause No Id Keywords error message to be a
fatal error rather than a warning.
t The module type; the value of this flag
replaces the %Y% keyword.
fix Remove a delta and reedit it.
delget Do a delta followed by a get.
deledit Do a delta followed by an edit.
diffs Compare the g-file out for edit with an earlier SCCS
version.
sccsdiff Compare any two SCCS versions of a g-file.
help Given either a command name, or an sccs message number,
this command provides additional information.
Id Keywords
%Z% Expands to @(#) for the what command to find.
%M% The current module name, for example, prog.c.
%I% The highest SID applied.
%W% A shorthand for ``%Z%%M% <tab> %I%''.
%G%. The date of the delta corresponding to the %I%. key‐
word.
%R%. The current release number, for example, the first com‐
ponent of the %I% keyword.
%Y% Replaced by the value of the t flag (set by admin).
See Alsoadmin(1), cdc(1), comb(1), delta(1), get(1), prs(1), rmdel(1), scc‐
shelp(1), unget(1), val(1), what(1), sccsfile(5)
Guide to the Source Code Control System
sccs(1)