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
Open Source Version Control Tools
- 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
- 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