This area is an archive and is no longer actively maintained. Information found on this page is likely to be extremely out of date and therefore highly inaccurate.

Cyclic SCCS page

Cyclic SCCS page

SCCS (the Source Code Control System) is a version control system. In general terms it is similar to RCS in terms of functionality (for example, it operates on one file at a time). As such, we'd generally recommend a more powerful system, such as CVS, even for beginners, but we have written this page because there seems to be continued interest in SCCS (for example, people might be used to SCCS or have files which need to be converted from SCCS format).

One popular feature that SCCS and CVS have, that RCS does not, is the ability to print each line of a file along with the version number which made the most recent modification to that line. (For CVS, the command is "cvs annotate", for SCCS, "sccs get -m -p").

Free versions of SCCS

The original (and still most widely used) version of SCCS is part of Unix and is not free. But several people have taken a stab at writing a free compatible replacement, so here is a list of the versions that we have been able to find. Disclaimer: Cyclic does not support any of the following software. In most cases we are just redistributing or linking to a distribution provided by someone else, and didn't even help write any of it.

  • MySC, from Ross Ridge, was thought to be only of historical interest, but then alpha version 2.1.1.4 came out in 1998.
  • GNU CSSC ("Compatibly Stupid Source Control") aims to be a relatively unembellished clone of the traditional SCCS. It is based on MySC version 1.4. For information about downloads and details about what CSSC can do, see the CSSC web page mentioned below.

SCCS and the Year 2000

SCCS uses two digit years. The standard fix for this is to treat two digit years as being in the range of 1969-2068 (we'll call this the "X/Open fix").

MySC implements the X/Open fix.

CSSC version 0.04-pl0 implements the X/Open fix (and contains test cases so that dates beyond 2000 should continue to work). Older versions have bugs in this area.

There is Y2K information for other implementations of SCCS later on this page.

SCCS Standards

There is a formal standard for the SCCS command line, as part of the Single Unix Specification (see below for details).

We're not aware of any formal standards for the file format that SCCS uses to store version histories, although System V and derived systems will often have a "sccsfile" man page which documents the file format.

SCCS mailing lists and newsgroups

The newsgroup for SCCS (and other version control systems) is comp.software.config-mgmt.

There is a mailing list for the CSSC implementation; to subscribe send mail to cssc-users-request@gnu.org. The volume has been something like several messages per month.

For more information

There is a packaged version of CSSC as part of Cyclic Gallery for Linux, both on CD-ROM and for download.

See the CSSC page from James Youngman, the CSSC maintainer.

See the MySC page from Ross Ridge, the author.

There is at least one published book concerning SCCS:

  • Applying RCS and SCCS, offers a detailed discussion of the RCS and SCCS version control tools, with particular emphasis on building scripts on top of RCS and SCCS to accomplish version control tasks.

The Single Unix Specification specifies the command line interface for SCCS (under "Commands and Utilities", see the "sccs" command, plus the individual commands like get, prs, etc). The standard is available on CD-ROM with a printed book, or on the web with free registration.

For further discussion of year 2000 issues, see the get and prs commands in Year 2000: The Millennium Rollover, from the X/Open Base Working Group.

Converting from SCCS to RCS/CVS

The sccs2rcs.csh script converts an SCCS file to an RCS file. Here is an unofficial patch regarding some of the details of what it does.

Non-freely-redistributable versions of SCCS

The SCCS included with most versions of the HPUX operating system stops working ("format error") on 1 Jan 1999 (see Y2K page, specifically patch PHCO_16252 "SCCS(1) Year 2000 cumulative patch" - the exact patch you need varies depending on the version of HPUX).

For SunOS and Solaris, the first Y2K-compliant SCCS is shipped with Solaris 7 and older versions need a patch, according to "Does Sun see any problems with the source code control system (SCCS)?", Year 2000 Frequently Asked Questions, Sun Microsystems.

[Cyclic Home]

Derek Price, CVS developer and technical editor of Essential CVS (Essentials line from O'Reilly Press) , and others offer consulting services and training through Ximbiot.