I love darcs' model of source code: a repository in an empty directory with a series of patches applied. Everything else is an optimization on top of that. The algebra of patches is great, but unfortunately breaks down a bit when it comes to dealing with conflicts. Darcs' interface is a bit rough, too: it doesn't use readline when entering strings like patch names, for example.