Let me join the chorus of darcs evangelists. About a year ago, I think,
I went on a crusade. I was fed up with CVS, and had heard all kinds of
cool things about distributed version control. I liked the theory of
arch, but no way in a million years could I swallow that terrible
interface. SVN I was already familiar with, but I was interested in
distributed version control. Monotone and another that I can't
remember, and darcs all looked to be in about the same place. I read
their websites and docs and decided darcs and I were a pretty good
match, so I gave it a try.

I didn't care that it was written in Haskell, but wouldn't it be rather
hypocritical for this ruby fanatic to toss away a potentially great
program because it was written in an obscure language? I might have
cared if installation were not as simple as apt-get install darcs.

I'm rambling. Let me try and sum it up. To me, darcs is to version
control as Ruby is to programming. It's simple, elegant, powerful, and
easy to pick up by the majority of developers (see the CVS transition
chapter in the docs). It reportedly has scalability issues and speed
issues on large projects, but I've never hit any limitations (this is
similar to ruby itself, also). The distributed paradigm is wonderful, I
can work on projects in several places without worry, I can work on my
laptop when I have no wireless. I am basically freed from the tyranny
of the version control system. Darcs is my friend, not my enemy. It
helps, not hinders. blah blah blah.

Do yourself a favor and give darcs a try. It's probably not the best
SCM for all situations, just as Ruby is probably not the best language
for all situations, but it's my favorite.

Most importantly, try something distributed, and whatever you do don't
use CVS if you can help it.