Version Control

The idea of version control is to build a new scope encompassing successive or alternative versions of sources (i.e. usually source files). This new concept, allowing for identification and thus a new level of support, is this of element (in ClearCase terminology).

Source code: third dimension in design (traditionally: data, function, versioning; in OO C++: classification, genericity, versioning)
Documents
Tools, (problem of shared libraries, and of the operating system)
Other resources, such as directories.
Test cases.

Problem of database records (How to version them? Impedance mismatch with the database).

Version control is optimum when changes between versions have some locality within the elements themselves.
This is trivially achieved in text files: deltas can be examined with the same tools as those used to examine (and edit) the text elements.
Restoring this valuable property for binary data (desktop publishing files, bitmaps) is not a trivial task and typically requires a high level of integration between the tool (say, the desktop publishing editor) and the configuration management system.

Retaining the identity of the resources by avoiding copies (Workspace Management and policies).


Baseline, SCM ToC
Marc Girod
Last modified: Mon Feb 5 14:32:23 EET 2001