The history of source code management
In order to understand the central need for source code control, it can be illuminating to have a brief look at the development history of source code management. This gives us an insight into the features that we ourselves might need. Some examples are as follows:
Storing historical versions of source in separate archives.
This is the simplest form, and it still lives on to some degree, with many free software projects offering tar archives of older releases to download.
Centralized source code management with check in and check out.
In some systems, a developer can lock files for exclusive use. Every file is managed separately. Tools like this include RCS and SCCS.
Note
Normally, you don't encounter this class of tool anymore, except the occasional file header indicating that a file was once managed by RCS.
A centralized store where you merge before you commit. Examples include Concurrent Versions System (CVS) and Subversion.
Subversion in particular is still...