18 March 2010

Revision control tools survey

A recent small versioning tools survey on the Toughtworks development mailing list by Martin Fowler:

Subversion has replaced CVS as the tool of choice.
Appreciation of reputed commercial tools like Rational Clearcase and Microsoft Team Foundation Server (version control) is shockingly low.
Thoughtworks is both involved in Open Source projects (jMock, CruiseControl ...) as a MicroSoft Gold Certified Partner, so these opinions should be fairly neutral. 
Distributed tools Git (by Mr Linux, Linus Thorvalds) and Mercurial get the highest approval rates. These tools copy the whole repository to the local system, not just the revision you're working on. Advantages are:
  • you can work with revisions while being diconnected
    • faster access
  • commit and publish are separate events.
    • developers can more easily make an intermediate commit before starting to write speculative code, without having to worry about the commit breaking the published code.
    • extra actions can be added between commit and publish
      • publish permission can be restricted
On the other hand subversion has an intuitive command line interface and the better windows GUI. You'd expect it to be more economic on disk space on the client as it does not store all revisions, but this is not the case, due to the efficient diff/storage algorithms of tools like git.