Sunday, November 12, 2006

SCM Cambrian Explosion

Since the beginning of time there has been CVS. Of course there have been commercial SCMs, Perforce, CMVC, BitKeeper, ClearCase and even the dreaded SourceSafe and so on (ever heard of JavaSafe? Tee, hee). There were even some other free choices, such as Arch. But in the F/OSS world CVS was king.

And then along came Subversion. This was not some overnight appearance; it took a few years to reach the level of stability and feature richness that serious projects need. And it was specifically advertised as CVS done right.

Then all of a sudden (partly due to the BitKeeper abandoning the free version for the Linux kernel) we have an explosion in choices.

  • Git (plus Cogito etc.)
  • Mercurial
  • Darcs
  • Monotone
  • SVK
  • Bazaar
Wow. There really was some pent up desire to improve things there.

The major improvement of nearly all of the newer SCMs over CVS is distributed repositories. This now seems to be the thing that no large project can live without.

But as the varied life forms of the Cambrian explosion we weeded out into a smaller number of heavily reused body plans, so we might expect the new SCMs to start showing one or two clear winners in the next couple of years. Of course they will (and should) all try to steal each others best features, improve performance, stability and user interface. But right now the choice is somewhat confusing.

I'm playing around with Git, and the thing that impresses me so far is the amount of useful features that have been layered on top of what is really a very simple core concept: indexing files and directories by a hash. Just how far will Git be able to take this simple backbone?

Labels: