Linux Version Control & Configuration Management Tools

Version control tools help multiple users to make simultaneous changes to a collection of documents/files, without clobbering each others' work or resulting in version confusion. Version control is essential for software development, and is often used for managing web sites, documentation, engineering drawings, corporate legal and business documents, and other documentation which must be archived and controlled. Version control also blends into specialties of related interest:
Document Control & Image Retrieval
Document control systems tend to focus more on the management of a large collection of documents and/or images, rather than on maintaining differing versions of a smaller number of documents. Document control systems are slowly replacing micro-fiche for archiving, and are used to store images of bank drafts (checks), land-survey data, engineering drawings, and the like.

Configuration Management & Software Distribution
Version-control tools are often used to store and control the configuration files (e.g. "AUTOEXEC.BAT" or "/etc/resolv.conf") for an operating system or software package. Administrators of large corporate networks turn to configuration management tools to guard against the accidental mangling of a config file, and to guarantee a uniform system configuration for a collection of workstations and servers. Configuration management tools are often integrated with software distribution tools, which automate the deployment and update of software packages across a large number of desktops.

Software Metrics
When engineering or programming staff are making many changes during product development, management is often interested in statistics about the rate of change. Files which change a lot, repeatedly, over long periods of time, often indicate trouble spots. Software metrics are tools that can help locate trouble spots by generating statistics about code and changes in that code.

Bug Tracking and Problem Reports
Because software change is often driven by problem reports, it is natural to integrate bug tracking systems with version control systems: this allows for a framework where changes resulting from a bug report can be easily located, and where some measure of certainty is provided that *all* changes have been integrated into a product release. This may not be an issue for small projects, but for anything much larger, say a half-dozen or more developers, few dozen released patches, and more than a few actively supported releases, such integration is mandatory.

General References

Caveat Emptor

The lists below were compiled between 1996 and 1998, and have not been kept up to date. You will want to supplement the below with your own crawl through the search engines!

Open Source Version Control Tools

The list below was generated between 1996-1998, and is out-of-date. There are many of these now, including BZR, git and SVN. In fact, these last three are among the most popular and widely acclaimed version control systems at this time (2008).
CVS
CVS provides multiple user checkout & merge, and a client-server model. Available on most Linux distributions. Very popular, the industry standard. A number of web pages, including: CVS Bubbles provide additional info. There are a variety of graphical front-ends to CVS; most all will run on Win95/NT.

Aegis
Aegis is a "transaction-based software configuration management system", or, more simply, a source-code control system. GPL'ed, active project. (See also here.)

PRCS
PRCS the Project Revision Control System, is the front end to a set of tools that (like CVS) provide a way to deal with sets of files and directories as an entity, preserving coherent versions of the entire set. Claimed to be easier to use than CVS, and higher performance too. Currently lacks network features, although these are being developed.

RCS
RCS is an industry standard collection of tools providing basic file locking and version control mechanisms. Its strength and durability are indicated by the fact that almost all other version control tools use RCS as their low-level interface -- RCS is the work-horse engine. RCS is low-level. Its not client-server. Its available on all Linux distributions.

SCCS
An oldie but a goodie, SCCS is considered by many to be obsolete, but still has many active fans, and is in active development, in the form of GNU CSSC. Standards fans take note: the SCCS command line is standardized in the Single Unix Specification, Version 2

Commercial Version Control Products

The list below was compiled between 1996 and 1998, and is now mostly out-of-date. AccuRev is currently in business; the status of the others is uncertain. There may well be new entrants into this field as well.
AccuRev (New listing)
AccuRev is a modern, up-to-date version control system -- it avoids many of the issues associated with the (older) branch-and-tag model of version control. Runs on Linux and other operating systems. Includes integrated bug tracking. Free trial versions may be downloaded.

ClioSoft SOS
ClioSoft SOS is a revision control tool based on RCS. It is built around a client-server model, and works across the internet or on intranets. It has both a command line interface and a tcl/tk GUI interface. It supports all the basic operations and operates on directories as well. It has a bug tracking system incorporated into it. Popular in the ASIC and FPGA code development user community. Runs across Sun, Linux and Windows. It is simple and very straight forward with many pre-written scripts (e-mailing, snapshots, tags). Free for projects having 200 objects or less.

MKS Source Integrity
The popular MKS Source Integrity version control system is now available from Mortice Kern Systems.

INTERSOLV PVCS
PVCS provides software configuration management and version control. Runs under most all Unix's, OpenVMS, Windows/NT, Windows 95, and OS/2.

SCM
UniPress Software provide SCM (Source Code Manager). The offer a free single-user version. The client is X11 based.

Perforce
Perforce generously allows you to try out their software before you buy. They allow non-commercial users of FreeBSD and Linux an unlimited free license. The design is client-server, and does not rely on a shared file system for distributed operation. The tool is an ASCII command-line tool, and although it include perl cgi scripts for invocation from a web browser, it does not have an X11 interface. Perforce provides RCS/CVS-to-Perforce conversion scripts.

CMZ
CMZ Software Version Control and Configuration Management tool.

Razor
Razor from Visible Systems Corp. Integrates with thier issue-tracking/workflow management system.

Configuration Management & Software Distribution

cfengine
cfengine is a tool for managing the config files of a large network of computers, and for automating the distribution of software & updates to this network.

BEAM
A tool for the automated distribution of software onto clusters of workstations. (ftp site).

rdist
rdist is a low-level command for the automated distribution of files to remote computers. Most Linux distributions come with an rdist client. Check for "man rdist".

Host Factory
Creating multiple, identical copies of a system can be hard work; it becomes even harder if patches and diffs need to be maintained. Multiply this by hundreds of computers ... and Unix sysadmins go crazy. The Working Version company has created a system version control and distribution mechanism to manage entire installed system versions. In particular, their version-controlled file system (yes, literally, a file system ...) caught my technical eye. Pretty amazing!

Software Metrics

Software Metrics
Software Metrics are useful for understanding how versions are changing, how "complex" a piece of software is, and other statistics useful for project managers.

Document Management & Image Management

Textware GmbH
Document Management System product (in German ...)

InterDMS
InterDMS Internet Document Management System (in Italian ...)

Casbah
The Casbah project hopes to create an integrated content mangement / content creation / web development system for Linux.

???
I saw a freeware document & image management tool for Linux, but misplaced the reference. Can you help?

docfs docfs -- Unified Documentation Storage and Retrieval for Linux Systems appears to be a project to develop a document management system.

With contributions from Martin d'Anjou <[email protected]>
Last updated March 2001 by Linas Vepstas ([email protected])
Copyright (c) 1996, 1997, 1998 Linas Vepstas.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included at the URL http://www.linas.org/fdl.html, the web page titled "GNU Free Documentation License".


Go Back to the Enterprise Linux Page
Go Back to the Linas' Home Page