Revision control, also called
version control, is the
management of changes to a set of files or documents.
This typically consists of the following:
- Revision tracking: maintaining a history of all changes made, allowing
users to retrieve historical document state
- Access control: limiting who gets access to which documents
- Multiple-editor management: disallowing one person from accidentally undoing
another person's changes, discouraging duplicated efforts and incompatible changes
Most revision control systems consist of the following actions:
- Editors check out documents for editing.
- Editors edit their checked-out files.
- Editors submit (or check in) their changes.
- If another editor wishes to edit a checked-out file, there are two options:
- A locking policy forbids multiple editors from working on the same file.
- Otherwise, one of the editors will have to execute a merge (also called integration) to combine
the two sets of changes.
Periodically, all editors synchronize to download everyone else's changes, then
check their changes against other users' changes to ensure no inconsistencies were introduced.
There are a number of software packages that implement
revision control, including:
Most of these packages are specialized for
source control:
revision control for the
source code of a
software development project.
Most
software development teams use some sort of
revision control software;
those that don't learn to, eventually. It is extremely valuable if multiple
people ever work on the same source files.
On the other hand, most of these software packages are difficult, and the check-out/check-in
process is still deemed too complex for non-technical folk. Offices or other groups that collaborate on documents would benefit enormously from revision control. Some office software enables collaboration by "checking out" individual
rows in a spreadsheet or individual paragraphs in a word processor on behalf of the user; these packages, including the productivity software of note, adapt a subset of revision control features and provide a subset of the benefits. Full-featured revision control that caters to the mass market --
something that is intuitive, transparent, and complete --
is a current software holy grail.