I’ve been using Arch/tla/baz for quite awhile now; I switched from Subversion awhile back. But they’ve got a bunch of things that annoy me. Offline working is clumsy. Performace is bad, and to make it even approach decent, you have to dedicate a huge amount of space to a revision library cache. Commands, even with baz, are clumsy and require an inordinate amount of typing. It’s still better than CVS and SVN, with its merging and all, but still — it’s been annoying.
Enter darcs. I’ve been keeping an eye on it for awhile, and it looks like it’s become quite stable, useful, and fast recently. I tried it out awhile back, and it wasn’t really “there” yet. I tried it out again this week, and must say that darcs is great. I’m converting all my Arch and Subversion stuff to Darcs.
The thing that really impressed me is this Darcs mirror of the Linux kernel Bitkeeper repository. Darcs is fast over this, far nicer than Arch was (I did a similar project in Arch awhile back), and it uses less than 1GB of disk space for a complete mirror.
Oh, and I wrote a 100-line Haskell program to convert Arch stuff to Darcs: arch2darcs. You can see an example of a converted repository at here. There’s also a program called Tailor (I didn’t write this one) that does a bidirectional sync between Darcs and CVS or Subversion. Sweet.
I’m happily converting the rest of my Arch and SVN stuff to Darcs today. Woohoo.