I have to mention darcs. It is simple to use and easy to set up, and trés cool, as it is written in Haskell. We all know all the cool things we can make with Haskell, don't we?
I have switched from Subversion to darcs in my personal projects, as i don't have to worry about creating and maintaining separate repositories. Darcs is a distributed revision control system, so all source trees can also work as repositories. In day to day work for one person this doesn't make any difference, but if you routinely code on intercontinental flights (for example?), the ability to commit changes locally and synchronize when you get back to a network connection is invaluable.
From the intro:
Creating your repository
Creating your repository in the first place just involves telling darcs to create the special directory (called _darcs) in your project tree, which will hold the revision information. This is done by simply calling from the root directory of your project:
This creates the _darcs directory and populates it with whatever files and directories are needed to describe an empty project. You now need to tell darcs what files and directories in your project should be under revision control. You do this using the command darcs add3.1:
% cd my_project/
% darcs initialize
When you have added all your files (or at least, think you have), you will want to record your changes. ``Recording'' always includes adding a note as to why the change was made, or what it does. In this case, we'll just note that this is the initial version.
% darcs add *.c Makefile.am configure.ac
Note that since we didn't specify a patch name on the command line we were prompted for one. If the environment variable `EMAIL' isn't set, you will also be prompted for your email address. Each patch that is recorded is given a unique identifier consisting of the patch name, its creator's email address, and the date when it was created.
% darc record --all
What is the patch name? Initial revision.
Try darcs. You have nothing to lose :)
Mischief. Mayhem. Soap.