I’ve been using git pretty heavily lately. The commands are a little wonky to learn, but once you’ve mastered a core set, distributed software revision control becomes a snap. I’m particularly impressed with how smoothly git manages branches and synchronization. I remember how painful that was in Subversion (and CVS).
This blog entry by Ned Batchelder is basically the best article I’ve seen on branching and merging using Subversion.
Note: (2018/01/13) Er, it’s a good article. But I’ve since moved on to git, a technology that makes branching and merging much, much easier. Friends don’t let friends do Subversion anymore.