This weblog has moved! You shall get redirected. If not, please just go to a new place yourself: blog.kowalczyk.info


Krzysztof Kowalczyk's Weblog
Blog or you'll be blogged.

Competition to CVS

CVS competition CVS is the most popular open-source code revision control system. Actually "most popular" is an euphemism - CVS enjoys total market dominance, being a default choice for individuals as well as being used by source-code farms like SourceForge. For many years CVS was unchallenged despite its many flaws, among which the most serious are:

  • it's slow
  • no support for versioned renaming files and creating/deleting dictionaries
  • no support for atomic commits over multiple files
  • weak tagging and branching support
  • no support for distributed repositories
There are few commercial tools that are more advanced than CVS (most notably Perforce and BitKeeper) but no open-source competitor was in sight until recently. Now there's in abundance of competition from: All those projects want to plug the most obvious CVS flaws and add some things of their own.

At present it looks like Subversion is most advanced. It has been worked on for a long time by a group of capable hackers and this group includes the authors of CVS. This is the only project that doesn't limit the software to *NIX platform but also includes plans for Windows binary (something of great interest to me). Subversion is self-hosting and the magic V1.0 should happen this year. The only problem I can see is that their solution is over-engineered (using Apache with DAV support as the server) which adds (unnecessary?) complexity to the software.

Arch is a solo (so far) effort of Tom Lord, a brilliant (although eccentric) programmer. Arch's design seems to be simplest (simplicity being one of the design goals). Arch server could be an ordinary ftp server and most of the code is implemented as shell scripts. Arch also is self-hosting although after a dynamic start the development slowed down (it seems that author got distracted by re-inventing C, automake, testing framework, Scheme implementation and Wiki implementation and inventing a new business model for free software). Windows compatibility isn't on author's TODO list (although it's possible that someone else will provide that; a Perl port of arch has started and that should be usable on Windows).

The latest announcements comes from OpenCM, created by folks involved in EROS OS and E language. EROS is focused on security and so is OpenCM. OpenCM is also self-hosting (i.e. it more-or-less works). 

It'll be interesting to watch how those systems will fare in a battle with CVS. Is this even possible to displace CVS at this time? It's not perfect but it might just as well be the best proof that "worse is better". Lots of people know and use CVS and they live with its weaknesses. There are plenty of additional tools for CVS: GUI front-ends for *NIX and Windows, web front-ends etc. Additionally those 3 tools will have to fight for a remaining mind-share between themselves.

Copyright 2002 © Krzysztof Kowalczyk.