Source Code Control System
Encyclopedia
Source Code Control System (SCCS) is an early revision control
system, geared toward program source code
and other text files. It was originally developed in SNOBOL
at Bell Labs
in 1972 by Marc J. Rochkind for an IBM System/370 computer running OS/360 MVT. It was later rewritten by him in C
for UNIX
, then running on a PDP-11
, and released with the Programmer's Workbench
(PWB) edition of that operating system.
Subsequently, SCCS was included in AT&T's commercial System III
and System V
distributions. It was not licensed with 32V
, the ancestor to Berkeley Unix
. The SCCS command set is now part of the Single UNIX Specification
.
SCCS was the dominant version control system for Unix until the release of the Revision Control System (RCS)
. Today, SCCS is generally considered obsolete. However, its file format is still used internally by a few other revision control programs, including BitKeeper
and TeamWare
. The latter is a frontend to SCCS. Sablime has been developed from a modified version of SCCS but uses a history file format that is incompatible with SCCS. The SCCS file format uses a storage technique called interleaved deltas (or the weave). This storage technique is now considered by many revision control
system developers as foundational to advanced merging
and versioning techniques, such as the "Precise Codeville
" ("pcdv") merge.
Apart from fixing some Year 2000 problem
s in 1999, there is no active development on the various UNIX vendor specific SCCS versions.
In 2006, Sun Microsystems
(today part of Oracle Corporation
) released their Solaris
version of SCCS as open source
under the Common Development and Distribution License
as part of their efforts to open-source Solaris.
SCCS is also known for sccs_id-string, for example:
static char sccsid[] = "@(#)ls.c 8.1 (Berkeley) 6/11/93";
The string contain file name, date, maybe something also. After compilation, this string is easy to find in binary and object files using pattern "@(#)" and to determine, which source code files were used while compilation.
versions include a version of SCCS, which however often is no longer actively developed.
(who had been asking for an open-source release of SCCS openly since 2005) maintains a fork
of SCCS that is based on the Open Solaris source code. It has received major feature enhancements but remains compatible with the original SCCS versions unless using the new project mode.
includes a version of SCCS derived from the Open Solaris source code.
offers the SCCS compatible program GNU CSSC ("Compatibly Stupid Source Control"), which is occasionally used to convert SCCS archives to modern systems like CVS
or Subversion; it is not a complete SCCS implementation and not recommended for use in new projects, but mostly meant for converting to a modern revision control system.
. Bitkeeper and TeamWare use the SCCS file format internally and can be considered successors to SCCS.
Revision control
Revision control, also known as version control and source control , is the management of changes to documents, programs, and other information stored as computer files. It is most commonly used in software development, where a team of people may change the same files...
system, geared toward program source code
Source code
In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...
and other text files. It was originally developed in SNOBOL
SNOBOL
SNOBOL is a generic name for the computer programming languages developed between 1962 and 1967 at AT&T Bell Laboratories by David J. Farber, Ralph E. Griswold and Ivan P. Polonsky, culminating in SNOBOL4...
at Bell Labs
Bell Labs
Bell Laboratories is the research and development subsidiary of the French-owned Alcatel-Lucent and previously of the American Telephone & Telegraph Company , half-owned through its Western Electric manufacturing subsidiary.Bell Laboratories operates its...
in 1972 by Marc J. Rochkind for an IBM System/370 computer running OS/360 MVT. It was later rewritten by him in C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
for UNIX
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...
, then running on a PDP-11
PDP-11
The PDP-11 was a series of 16-bit minicomputers sold by Digital Equipment Corporation from 1970 into the 1990s, one of a succession of products in the PDP series. The PDP-11 replaced the PDP-8 in many real-time applications, although both product lines lived in parallel for more than 10 years...
, and released with the Programmer's Workbench
PWB/UNIX
The Programmer's Workbench was an early version of the Unix operating system created in the Bell Labs Computer Science Research Group of AT&T....
(PWB) edition of that operating system.
Subsequently, SCCS was included in AT&T's commercial System III
UNIX System III
UNIX System III was a version of the Unix operating system released by AT&T's Unix Support Group . It was first released outside of Bell Labs in 1982. UNIX System III was a mix of various AT&T Unixes: PWB/UNIX 2.0, CB UNIX 3.0, UNIX/TS 3.0.1 and UNIX/32V...
and System V
UNIX System V
Unix System V, commonly abbreviated SysV , is one of the first commercial versions of the Unix operating system. It was originally developed by American Telephone & Telegraph and first released in 1983. Four major versions of System V were released, termed Releases 1, 2, 3 and 4...
distributions. It was not licensed with 32V
UNIX/32V
UNIX/32V was an early version of the Unix operating system from Bell Laboratories, released in June 1979. 32V was a direct port of the PDP-11 Seventh Edition Unix to the DEC VAX architecture....
, the ancestor to Berkeley Unix
Berkeley Software Distribution
Berkeley Software Distribution is a Unix operating system derivative developed and distributed by the Computer Systems Research Group of the University of California, Berkeley, from 1977 to 1995...
. The SCCS command set is now part of the Single UNIX Specification
Single UNIX Specification
The Single UNIX Specification is the collective name of a family of standards for computer operating systems to qualify for the name "Unix"...
.
SCCS was the dominant version control system for Unix until the release of the Revision Control System (RCS)
Revision Control System
The Revision Control System is a software implementation of revision control that automates the storing, retrieval, logging, identification, and merging of revisions. RCS is useful for text that is revised frequently, for example programs, documentation, procedural graphics, papers, and form...
. Today, SCCS is generally considered obsolete. However, its file format is still used internally by a few other revision control programs, including BitKeeper
BitKeeper
BitKeeper is a software tool for distributed revision control of computer source code. A distributed system, BitKeeper competes largely against other systems such as Git and Mercurial...
and TeamWare
TeamWare
Sun WorkShop TeamWare is a distributed source code revision control system made by Sun Microsystems...
. The latter is a frontend to SCCS. Sablime has been developed from a modified version of SCCS but uses a history file format that is incompatible with SCCS. The SCCS file format uses a storage technique called interleaved deltas (or the weave). This storage technique is now considered by many revision control
Revision control
Revision control, also known as version control and source control , is the management of changes to documents, programs, and other information stored as computer files. It is most commonly used in software development, where a team of people may change the same files...
system developers as foundational to advanced merging
Merge (revision control)
Merging in revision control, is a fundamental operation that reconciles multiple changes made to a revision-controlled collection of files. Most often, it is necessary when a file is modified by two people on two different computers at the same time...
and versioning techniques, such as the "Precise Codeville
Codeville
Codeville is a distributed revision control system. It was written by Ross Cohen using Python, with some design work done by Bram Cohen. It uses an innovative merging algorithm called the "Codeville merge". A new merge algorithm called "Precise Codeville" or "pcvd" merge was under development...
" ("pcdv") merge.
Apart from fixing some Year 2000 problem
Year 2000 problem
The Year 2000 problem was a problem for both digital and non-digital documentation and data storage situations which resulted from the practice of abbreviating a four-digit year to two digits.In computer programs, the practice of representing the year with two...
s in 1999, there is no active development on the various UNIX vendor specific SCCS versions.
In 2006, Sun Microsystems
Sun Microsystems
Sun Microsystems, Inc. was a company that sold :computers, computer components, :computer software, and :information technology services. Sun was founded on February 24, 1982...
(today part of Oracle Corporation
Oracle Corporation
Oracle Corporation is an American multinational computer technology corporation that specializes in developing and marketing hardware systems and enterprise software products – particularly database management systems...
) released their Solaris
Solaris
- Fiction :* Solaris , a 1961 science fiction novel by Stanisław Lem** Solaris , directed by B. Nirenburg** Solaris , directed by Andrei Tarkovsky** Solaris , directed by Steven Soderbergh...
version of SCCS as open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
under the Common Development and Distribution License
Common Development and Distribution License
Common Development and Distribution License is a free software license, produced by Sun Microsystems, based on the Mozilla Public License , version 1.1....
as part of their efforts to open-source Solaris.
SCCS is also known for sccs_id-string, for example:
static char sccsid[] = "@(#)ls.c 8.1 (Berkeley) 6/11/93";
The string contain file name, date, maybe something also. After compilation, this string is easy to find in binary and object files using pattern "@(#)" and to determine, which source code files were used while compilation.
UNIX SCCS versions
Most UNIXUnix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...
versions include a version of SCCS, which however often is no longer actively developed.
Jörg Schilling's fork
Jörg SchillingJörg Schilling
Jörg Schilling is a computer programmer who has worked extensively on compact disc burning software, the Solaris Operating System and the OpenSolaris project. He studied originally as an electrical engineer at the Technical University of Berlin...
(who had been asking for an open-source release of SCCS openly since 2005) maintains a fork
Fork (software development)
In software engineering, a project fork happens when developers take a legal copy of source code from one software package and start independent development on it, creating a distinct piece of software...
of SCCS that is based on the Open Solaris source code. It has received major feature enhancements but remains compatible with the original SCCS versions unless using the new project mode.
Heirloom project
The Heirloom ProjectHeirloom Project
The Heirloom Project is a collection of traditional Unix utilities. Most of them are derived fromoriginal Unix source code, as released as Open Source by Caldera and Sun.The project has the following components:...
includes a version of SCCS derived from the Open Solaris source code.
GNU conversion utility
GNUGNU
GNU is a Unix-like computer operating system developed by the GNU project, ultimately aiming to be a "complete Unix-compatible software system"...
offers the SCCS compatible program GNU CSSC ("Compatibly Stupid Source Control"), which is occasionally used to convert SCCS archives to modern systems like CVS
Concurrent Versions System
The Concurrent Versions System , also known as the Concurrent Versioning System, is a client-server free software revision control system in the field of software development. Version control system software keeps track of all work and all changes in a set of files, and allows several developers ...
or Subversion; it is not a complete SCCS implementation and not recommended for use in new projects, but mostly meant for converting to a modern revision control system.
Other revision control systems
Since the 1990s, many new revision control systems have been developed and become popular that are designed for managing projects with a large number of files and that offer advanced functionality such as multi-user operation, access control, automatic building, network support, release management and distributed revision controlDistributed revision control
A distributed revision control system , distributed version control or decentralized version control keeps track of software revisions and allows many developers to work on a given project without necessarily being connected to a common network.-Distributed vs...
. Bitkeeper and TeamWare use the SCCS file format internally and can be considered successors to SCCS.