Home:Professional:Version Control

This page summarizes essential differences between some version control systems I have experience with. Check marks “✓” indicate ‘yes’, dashes “&ndash” indicate ‘no’. An empty cell indicates ‘unknown’. Separate lines within a cell usually indicate options.

Architecture

Version Control Architectures
Name Open
Source
Platform Server-
Based [2]
Repository Access
Model
Access
Method
Metadata
Projector MacOS no proprietary command line [3] file system
SourceSafe M$ yes proprietary GUI file system
VOODOO MacOS yes proprietary IDE [1] Apple Events
RCS open no RCS command line file system
CVS open no RCS command line [4] file system
Subversion open no
yes
Berkeley DB command line [4] file system
WebDAV/HTTP
WebDAV/HTTPS
SVN
SVN/SSH
ClearCase UNIX
W$
yes proprietary
(Versioned OBject)
client
command line
file system
virtual file system

[1] Working operations through the version control support in the CodeWarrior IDE. Administrative functions through a client.

[2] This indicates only whether the source control system itself provides a server, not whether it relies on the underlying services of a file server, for example.

[3] All operations through the Macintosh Programmer's Workshop (MPW) IDE.

[4] While the primary access is by means of a command line, secondary third-party graphical user interfaces are available.

Model

Version Control Models
Name Locking Multiple
Check-Outs
Atomic
Check-in
Track
Moved
Files
Revision
Granularity
Dimensionality
Projector
SourceSafe exclusive
VOODOO exclusive
RCS file 1
CVS shared file 3
Subversion shared hierarchy 2
ClearCase

Discussion

Projector

Original version control system for the Macintosh Programmer's Workshop (MPW) IDE.

VOODOO

Server and plug-in for the Metrowerks CodeWarrior IDE on MacOS.

CVS

Each file has its own revision and branching history. Although there are no true project revisions, they can be approximated by tagging selected sets of file revisions. Directories constitute just a default set of files.

Subversion

Access to the repository is essentially through an in-process data base, but version control servers may be built on top of this. A revision is a snapshot of the entire file hierarchy. Although there are no true branches, they may be approximated by making copies of project folders.

All pages under this domain © Copyright 1999-2006 by: Ben Hekster