Jump to Navigation

055 - Source Code Management

The Source Code Control System. SCCS is the original Unix source code management system.
It was developed in the late 1970s for the Programmer's Workbench(PWB) Unix systems within Bell Labs.
It is still in use at a few large longtime Unix sites. However, for a long time it was not available as a
standard part of most commercial or BSD Unix systems, and it did not achieve the widespread popularity
of other, later systems. (It is still available with Solaris.) SCCS uses a file storage format that allows it to
retrieve any version of a source file in constant time.

The Revision Control System. RCS was developed in the early 1980s at Purdue University by Walter F. Tichy.
It became popular in the Unix world when it was shipped with 4.2 BSC in 1983. At the time, Berkeley Unix was
the most widely used Unix variant, even though to get it, a site had to have a Unix license from AT&T.

The Concurrent Version System. CVS was initially built as a series of shell scripts sitting atop RCS.
Later it was rewritten in C for robustness, although still using RCS commands to manage the storage
of files. However, for quite some time, CVS has had the RCS functionality built into it, and it no longer
requires that RCS be available. The file format continue to be the same. CVS was the first distributed
source code management system and is currently the standard one for Unix systems - in particular
for collaborative, distributed, Free and open source development projects.
The repository is named when you create a sandbox and is then stored in the files in the sandbox,
so that it need not be provided every time you run a CVS command. Unlike SCCS and RCS, which provide
multiple commands, CVS has one main command, which you use for just about every operation.

With increasing use, it became clear that CVS lacked some fundamental capabilities. The Subversion project
was started by several longtime CVS users and developers with the explicit goal to "Build a better CVS,"
not necessarily to explore uncharted territory in source code management systems.
Subversion is thus intentionally easy to learn for CVS users. Subversion uses its own format for data storage,
based on Berkeley DB in-process data library. Distributed use was designed in from day one, providing useful
facilities that leverage the capabilities of the well-known Apache HTTP server.

RCS, CVS, and Subversion represent a progression, each one building on the features of its predecessors.
For example, All three share a large subset of the same keyword substitutions, and command names
are similar or identical in all three. They also demonstrate the progression from centralized, locking-based development to distributed, conflict-resolution-based development.



Main menu 2

Story | by Dr. Radut