2009-04-15

There is a war out there.

I think we are at the golden age of free Version Control Software. Look at the few active examples below:
  • Bazaar: Distributed Version Control System sponsored by Canonical Ltd, part of the GNU project and written in Python. Bazaar supports working with or without a central server and has support for working with some other revision control systems like Subversion.
    Available on all platform with Python 2.4 support.
  • CVS: Centralized Source Control system, CVS is the Successor of RCS and ancestor of Subversion. CVS development is stalled (only 2 bug fixes release in 2 years, no new feature).
    Available on Unix like and Windows
  • darcs: Distributed Version Control System written in Haskell by David Roundy. DARCS is built around Roundy's theory of patch.
    Available on Unix, Linux, BSD Mac OS X and Windows
  • DVCS: Distributed Version Control System by ElegoSoft. DVCS extends the programs CVS and CVSup with functionality to distribute CVS repositories with local lines of development and automatically handles the synchronization of the distributed repositories in the background.
    Available on Unix, Linux, BSD, Mac OS X and Cygwin (Windows)
  • Fossil: Fossil is a distributed software version control system that includes an integrated distributed wiki and an integrated distributed bug-tracking system all in a single, easy-to-use, stand-alone executable. Fossil is one of the latest DVCS to date and is written by D. Richard Hipp, the same guy who wrote SQLite.
    To the best of my knowledge, it is available on Linux, Mac OS X and Windows.
  • Git: Distributed Version Control System originally written by Linus Torvalds for the Linux Kernel development after a Bitkeeper license issue. Git was inspired by BitKeeper and Monotone with an emphasis and being fast.
    Available on Unix, Linux, BSD, Mac OS X and Cygwin (Windows).
  • Mercurial: Distributed Version Control System written in Python and C, started at the same time and for the same reasons than Git. It is designed as a lightweight DVCS which efficiently handle very large distributed project.
    Available on Unix, Linux, BSD, Mac OS X and Windows
  • Monotone: Distributed Version Control System written in portable C++ using peer-to-peer synchronization protocol, supporting fully disconnected operations. Each participant maintains their own revision history store in a local SQLite database. Like Fossil, Monotone is held in a single-file executable with a single-file SQLite database repository. Focus on integrity over performance.
    Available on Unix, Linux, BSD, Mac OS X and Windows
  • OpenCVS: Version Control System developed by the OpenBSD Project which aims at staying as compatible as possible with GNU cvs while being as secure as possible and enhance the access control on repository files. OpenCVS is not yet available (AFAIK) but is actively developed by the same team behind OpenSSH.
    Not (yet) available.
  • Subversion: is probably the most popular Version Control System. It is initiated in 2000 by CollabNet Inc and aims to be the successor of CVS, while fixing bugs and misfeatures of CVS.
    Available on Unix, Linux, BSD, Mac OS X and Windows.
By the way, they all suck one way or another...

As in every war, you have casualties. Please observe one minute of silence remembering:
  • GNU Arch, from the GNU project
  • RCS, from the GNU project
  • SCCS, from Bell Labs
  • ArX, a fork of GNU Arch by Walter Landry
  • Baz, another fork of GNU Arch, ancestor of Bazaar by Canonical ltd
  • Codeville, from Ross Cohen
  • OpenCM, a VCS for the EROS project
  • FastCST, experimental tool written in ruby.
  • Supervision, by Stefan Reich
On the other hand, CVS is in the list because of its past fame and glory. Feel free to add more in the comments section.