Nat! bio photo


Senior Mull

Twitter Github Twitch

Revision control system conclusion

So I have spent quite some time looking at a few next generation software revision systems. Here's what I have come to conclude about each of them:

  • arch/bazaar - arch promises to be a distributed revision control system. But it is so only in a limited way: mirroring. It would be possible to use arch to build a truely distributed system, but that means a lot of work. It's mainline successor bazaar, improves on the user experience. The roadmap for arch 2.0, doesn't look like it's fixing any of the conceptual problems of arch. My impression is that this software is going to die off eventually, as it doesn't deliver enough to offset its bondage and discipline traits. Other systems will leapfrog it.
  • codeville - I read the slides and think it could become interesting as it tries to be fairly cvs compatible and also tries to do merging more cleverly. Unfortunately it uses Berkeley DB as the back end. It can't do per-hunk commits. It needs a running server process.
  • darcs - darcs does pretty much everything right. From the way you can truely push and pull and edit changes between repositories to the per-hunk commit and rollback feature. darcs could be the future, alas it is not the present. Written in Haskell it has serious performance problems and bugs, that make it useless to me at current time. My hunch is that darcs won't ever really manage to work without "hanging" as it tries to resolve conflicts. But I will give it some more tries as it progresses.
  • monotone couldn't get this to install on Mac OS X. It uses a database backend. As I couldn't test it, I am not sure how well the distribution mechanisms work.

So what now ? I am currently back to CVS. I will monitor the progress of the various systems. I hope darcs can push through, but I don't bet on it. My ideal would be a darcs with an arch backend. Maybe bazaar will be able to deliver something close, but again I don't bet on this either.