Version Control

He who controls the version control, controls the past.

Version control (aka source control) is the basic level of SoftwareConfigurationManagement, upon which any more sophisticated SCM is built. At its most simple, it is a means of storing code.

Examples of source control software are:

Version control is at a finer grain than nightly backups. It should be entirely at the control of the author when a version is kept.

This is not the only difference. More sophisticated version control implies organizing the versions into a tree with branches, thus supporting parallel development. This again requires merging capabilities. Labeling comes soon handy, allowing to relate versions of different elements. Finally, different SCM systems may have restrictions to the support of various kinds of elements (e.g. binary file formats, or directories --required to manage the names of elements).

What we want is of course the share information in a collaborative way. And sharing can only be OpenClosed:

VersionControl can be a basis for SoftwareChangeManagement. In the same vein as ChangeManagementAppliedToWiki, we can also consider VersionControlAppliedToWiki -- MarcGirod

Tips for selecting source code control systems:


It's not the version control system that won't let you rename a class. Rather, it's the combination of a version control system that doesn't support real file renaming and a programming language which forces file names to follow class names.

It is a scandal how often these things lose your source. Write a cron job to save your source tree in a zip file. --AnonymousDonor

... and when you've lost track of which particular zip file you need from the hundreds that have been created, you have discovered the need for a proper source code control system. Just imagine you could ask the software "What changed between r1.1 and r8.5 of bignastyfile.c?"

I think he meant to save your source in a zip file in addition to using a source code control system.

With DistributedVersionControl systems, every repository you check out can potentially be a backup of the entire history. -- ScottVokes

I've been using VersionControl tools for ten years, and have yet to lose any source files. Don't be afraid of these things (but do be sure to keep backups). I trust simple file/text-based tools like CVS more than I do the database-backed tools or the ones that store things in proprietary binary forms. -- KrisJohnson

I totally agree with KrisJohnson. File/text-based tools have disadvantages but the advantages of recovering (I have lost a repository, that isn't that funny) and of portability to other tools or systems. Nevertheless you can use or build your own add-on tools. -- AndreasSchweikardt

What I expect of my perfect version control system:

Please add your own ideas ... -- AndreasSchweikardt

External Links

See also ExtremeVersionControl ...


EditText of this page (last edited November 15, 2011) or FindPage with title or text search