I'm sure all of you have heard of some type of version control software (VCS), be it RCS, CVS or SVN. However, in recent times there have been a number of new VCS's out there, Bazaar, Mercurial, and Darcs. I've been playing around with darcs for the past few months, and I've come to find it very useful and easy to use. I generally do my development on a few different machines, and I need to keep track of which files I've updated, I never do anything very complex with branching and re-merging. Darcs is nice because it's a distributed VCS, meaning that there is no 'master' server, each developer gets their own working copy, and generates patches off of that. Once a developer has patches to be applied to another developer's repo, the patches can be sent via gpg-signed email, of scped to the other repo.
My usesof this have been to keep my development synchronized between my different machines. It works like this. For each project I'd like to put under darcs' control, I cd into the directory and type 'darcs init'. From there, I can 'darcs add' files I want to be watched, and then 'darcs record' to commit everything into the repo. From there I can 'darcs pull' changes from another ssh, ftp or http accessible repo, applying those changes. If I want to move changes from one place to another, I can 'darcs push' them somewhere else over ssh.
While this is not meant to be a tutorial, it's more showing how useful it is if you do your work over multiple machines and want to keep them synced up. If you are looking for more information, you can check out the darcs homepage.