Darcs version control
I’ve recently taken to using the Darcs version control system as my personal version control system. Darcs is one of the newer breed of distrubuted version control systems. Unlike with subversion and cvs there is really no central server where the repository lives. Instead each local copy is its own version control repository. You can record changes in your local repository then “push” the changes to other repositories or “pull” changes back to your local repository. There is no concept of branching. If you want to create a branch then one way is to simply copy the existing repository to another location. A branch in this case is a repository that contains patches you might not have applied yet.
It might sound like it gets complicated and confusing having different repositories floating around like this but in practice I’ve found it to be fairly intuitive. A rather nice feature is that patches can easily be managed by email. Each patch has a unique identifier so clashes don’t occur like would happen if you were to manually attempt this with CVS.
The main downside of darcs is that the tool support is next to non-existant. The command line works fairly intuitively but tool like TortoiseCVS would be a big help.