Extending svn, à la git
Subversion is a useful tool. It does most of what I need it to do, but sometimes there are missing features. Sometimes, it’s something that git does natively. Other times, it’s a repeated command sequence. It’s easy to write small scripts to do these new things, but they never feel like they fit in with the rest of the commands. I’ve always been fond of the way that git can be extended by simply creating a script with the right name; git-foo [args] becomes git foo [args].