Thursday, July 15, 2010

Paladin: No More CVS, Either

I wish that when I started the project for Paladin over at Sourceforge that I had been able to choose Subversion for source control using the client for Zeta. Because of an outdated client, I was forced to use CVS. While CVS is (barely) adequate for legacy work, anyone who knows the importance of source control knows better than to use it when far better tools exist. Subversion is CVS done right, but it certainly isn't perfect, either.

Distributed source control tools are the current fashion, it seems, and rightly so. After a lengthy discussion of Mercurial vs git which to choose over Subversion, I decided to do some looking into both of them. It's another one of those Coke vs Pepsi, KDE vs GNOME kind of controversies. Long story short: I haven't looked into git very much, but I've learned enough about Mercurial to say that I like it a lot.

Just a few moments ago I checked in the current development snapshot to Paladin's new Mercurial tree. It's official: I'm no longer using Zeta for development. I am still supporting source compatibility for the platform, but now my focus for Paladin is solely Haiku. This change in perspective will bring in some features not possible for R5 or Zeta.

One new feature for Paladin 1.3 is integrated source control on a basic level. The inspiration comes from The Joel Test: 12 Steps to Better Code. One of the steps is using source control -- yes, even CVS. In all the years that I've been flinging C++, I never used source control locally. I didn't see the point in doing so locally and didn't think all that much about source control to begin with. I didn't want to put in the effort to learn more, either. Lazy developer, I know. git and Mercurial make it foolish to not use it. It's a different workflow, but only slightly.

Paladin's integrated source control will be simple and about as unobtrusive as possible. It creates a repository when you make a new project. Click a menu item or press a shortcut on the keyboard, type in the check in message, and it will check in your work locally. Click another menu item and it will push your changes to another repository somewhere. It's about as painless as it can get. Mess something up? Revert to the last known good revision. You will be able to even choose from Mercurial, git, and Subversion for your work. Only the basics will be covered in 1.3 to avoid pushing the release off too much. Gotta get back to hacking. TTFN


  1. Congratulations!
    I migrated to mercurial quite a few month ago and very happy with it now.

    I hope it will not disappoint you. Good luck!

  2. I've been using it extensively since I posted yesterday morning and I'm very pleased. Last night I implemented the git backend for the integrated source control feature and I like Mercurial's way of doing things much better. Git has too many switches, too many quirks, and, like Linux, feels more like a somewhat-loosely associated collection of tools than a unified tool.

  3. Does it meens the Paladin CVS at sourceforge is outdated starting from now, and if yes where one could still follow Paladin development progress (aka, is this news Hg repository public too :-)) ?

  4. Never mind, it's on Paladin Hg at... sourceforge, right!?


  5. Yep. The CVS repo is still public because I still want the history, but I didn't want to bother with the hassle of the migration. I know it's not hard -- I just didn't want to bother. The Mercurial repo is public at Sourceforge right now. :)