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.
-
gCVS is a graphical front end to CVS. Supports
Linux, HP/UX, Win95/NT, Macintosh, and SunOS. Specifically
designed to be easy to use; aimed at non-technical users,
such as writers & the marketing department.
- RAD/CVS includes TCL/TK & Java interfaces to CVS. See
the RADSoft page.
The screen-shot looks rather impressive.
- TkCVS
is another CVS GUI.
See also
the Tcl ftp site, and look for tkcvs.
- jCVS
is a Java based graphical CVS client. The client runs on
NT/W95 as well as Unix, as the
screenshot illustrates.
- 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 <point14@yahoo.com>
Last updated March 2001 by Linas Vepstas
(linas@linas.org)
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