sccs - front end for the SCCS subsystem
sccs [ -r ] [ -dpath ] [ -ppath ] command [ flags ] [ args ]
Sccs is a front end to the SCCS programs that helps them mesh more
cleanly with the rest of UNIX. It also includes the capability to run
``set user id'' to another user to provide additional protection.
Basically, sccs runs the command with the specified flags and args. Each
argument is normally modified to be prepended with ``SCCS/s.''.
Flags to be interpreted by the sccs program must be before the command
argument. Flags to be passed to the actual SCCS program must come after
the command argument. These flags are specific to the command and are
discussed in the documentation for that command.
Besides the usual SCCS commands, several ``pseudo-commands'' can be
issued. These are:
edit Equivalent to ``get -e''.
delget Perform a delta on the named files and then get new versions.
The new versions will have id keywords expanded, and will not
be editable. The -m, -p, -r, -s, and -y flags will be passed
to delta, and the -b, -c, -e, -i, -k, -l, -s, and -x flags will
be passed to get.
deledit Equivalent to ``delget'' except that the ``get'' phase includes
the ``-e'' flag. This option is useful for making a
``checkpoint'' of your current editing phase. The same flags
will be passed to delta as described above, and all the flags
listed for ``get'' above except -e and -k are passed to
create Creates an SCCS file, taking the initial contents from the file
of the same name. Any flags to ``admin'' are accepted. If the
creation is successful, the files are renamed with a comma on
the front. These should be removed when you are convinced that
the SCCS files have been created successfully.
fix Must be followed by a -r flag. This command essentially
removes the named delta, but leaves you with a copy of the
delta with the changes that were in it. It is useful for
fixing small compiler bugs, etc. Since it doesn't leave audit
trails, it should be used carefully.
clean This routine removes everything from the current directory that
can be recreated from SCCS files. It will not remove any files
being edited. If the -b flag is given, branches are ignored in
the determination of whether they are being edited; this is
dangerous if you are keeping the branches in the same
unedit This is the opposite of an ``edit'' or a ``get -e''. It should
be used with extreme caution, since any changes you made since
the get will be irretrievably lost.
info Gives a listing of all files being edited. If the -b flag is
given, branches (i.e., SID's with two or fewer components) are
ignored. If the -u flag is given (with an optional argument)
then only files being edited by you (or the named user) are
check Like ``info'' except that nothing is printed if nothing is
being edited, and a non-zero exit status is returned if
anything is being edited. The intent is to have this included
in an ``install'' entry in a makefile to insure that everything
is included into the SCCS file before a version is installed.
tell Gives a newline-separated list of the files being edited on the
standard output. Takes the -b and -u flags like ``info'' and
diffs Gives a ``diff'' listing between the current version of the
program(s) you have out for editing and the versions in SCCS
format. The -r, -c, -i, -x, and -t flags are passed to get;
the -l, -s, -e, -f, -h, and -b options are passed to diff. The
-C flag is passed to diff as -c.
print Prints out verbose information about the named files. -c.
prs Prints out the delta information about the named files. All
the prs(1) can be specified.
The -r flag runs sccs as the real user rather than as whatever effective
user sccs is ``set user id'' to. The -d flag gives a root directory for
the SCCS files. The default is the current directory. The -p flag
defines the pathname of the directory in which the SCCS files will be
found; ``SCCS'' is the default. The -p flag differs from the -d flag in
that the -d argument is prepended to the entire pathname and the -p
argument is inserted before the final component of the pathname. For
example, ``sccs -d/x -py get a/b'' will convert to ``get /x/a/y/s.b''.
The intent here is to create aliases such as ``alias syssccs sccs
-d/usr/src'' which will be used as ``syssccs get cmd/who.c''. Also, if
the environment variable PROJECTDIR is set, its value is used to
determine the -d flag. If it begins with a slash, it is taken directly;
otherwise, the home directory of a user of that name is examined for a
subdirectory ``src'' or ``source''. If such a directory is found, it is
Certain commands (such as admin) cannot be run ``set user id'' by all
users, since this would allow anyone to change the authorizations. These
commands are always run as the real user.
To get a file for editing, edit it, and produce a new delta:
sccs get -e file.c
sccs delta file.c
To get a file from another directory:
sccs -p/usr/src/sccs/s. get cc.c
sccs get /usr/src/sccs/s.cc.c
To make a delta of a large number of files in the current directory:
sccs delta *.c
To get a list of files being edited that are not on branches:
sccs info -b
To delta everything being edited by you:
sccs delta `sccs tell -u`
In a makefile, to get source files from an SCCS file if it does not
SRCS = <list of source files>
sccs get $(REL) $@
admin(1), comb(1), delta(1), get(1), help(1), prs(1), rmdel(1),
It should be able to take directory arguments on pseudo-commands like the
SCCS commands do.
PPPPaaaaggggeeee 3333 [ Back ]