● essential tool for any project with multiple source files or
which has several people working with multiple source
● provides a way to keep track of a source file's
development and to prevent it from being altered by more
than one person at a time.
● first source code revision control system
● dominant version control system until the release of the
Revision Control System.
● generally considered obsolete. However, its file format is
still used internally by a few other revision control
programs, including BitKeeper and TeamWare.
SCCS can be used for...
● Putting files under SCCS control
● Checking out files
● Checking in files
● Getting information about files
● Creating new releases
● Comparing files under SCCS control
Putting files under SCCS control
Files are placed under the control of SCCS by
making an SCCS directory and creating the
SCCS file. You also have the option of placing ID
keywords in each file.
● Making an SCCS directory
● Inserting SCCS ID keywords in a file
● Creating an SCCS file
Making an SCCS directory
● To create the SCCS directory use the
● The directory name must be in upper case.
Inserting SCCS ID keywords in a file
● You can put one or
more ID keywords in
each file. These
keywords are used to
about the file
whenever a read only
version is checked
SCCS ID keywords include:
%G% the date of the delta
%I% sid of the retrieved text
%M% the current module name
%R% the current release number
%W% a shorter form for %Z%%M%<tab>%I%
%Z% string used by the what command
Creating an SCCS file
● To place files under the control of SCCS use the command:
sccs create filename(s)
● For each filename given as an argument sccs create does the following:
● filename is moved to ,filename
● a history file s.filename is created in the SCCS subdirectory
● a "read only" copy of the initial version of the file is made by sccs get
● You can use the ls command to check that the history files have been
● Now you can remove the ,filename files:
Checking out files
You can check out a file to read it or edit it and
then check it back in again. You can also check
out earlier versions of a file.
● Check out a file for reading
● Check out a file for editing
● Check out an early version of a file
● Cancelling an editing session
Check out a file for reading
To get a copy of one of your files for reading use the command:
sccs get filename
To get a copy of each of your files for reading use the command:
sccs get SCCS
When you have finished using a file that was fetched from SCCS
by sccs get do not attempt to replace it there: remove it.
Check out a file for editing
To check out a copy of one of your files for editing use the command:
sccs get -e filename
SCCS will record your login name. No other users can checkout this file
but they can see who it is checked out to. If a read-only copy of this file
already exists then it will be overwritten.
To check out a copy of each of your files use the command:
sccs get -e SCCS
Check out an early version of a file
You can check out an earlier version of a file. Use
sccs get -r version number
Cancelling an editing session
You check out a file, edit it, and then decide that
you don't want this new version.
sccs unedit filename
This removes the file and reverts to the previous
Checking in files
After editing a file you can check it in with the
sccs delta filename
SCCS will then:
● make sure you are the user who checked it out
● ask you for a descriptive comment on the changes you have
● record what changes have been made
● remove the writable copy of the file from the current
Getting information about files
SCCS provides facilities for getting the following
types of information about files under its control.
● Which files are being edited?
● sccs info
● sccs info -u username
● What is the latest versions of each file?
● sccs what filename(s)
● What is the history of this file?
● sccs prt filename
Creating new releases
To begin a new release for a file you "get" it with
the next release number.
sccs get -e -r release_number filename
For example for a file with a version of 2.4 you
would want the new release to be 3.
sccs get -e -r3 sect1.txt
new delta 3.1
Comparing files under SCCS control
You can compare any two versions of a file that is
under the control of SCCS with the sccsdiff
/usr/sccs/sccsdiff -rversion -rversion s.filename
Using this command produces a line by line
difference between the two versions of the file.
Results are shown in the same format as that
produced by the diff command.