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).