Lately I’ve been trying out the Mercurial distributed version control system on some real projects. I currently use Subversion for production stuff at work. It’s reliable, has great Trac integration, and is most likely to be known by other developers. (In fact, we hired a new person at work this fall who will be helping me with web development, and it turned out that Subversion was what he was familiar with.
Shared hosting is starting to feel pretty quaint in the face of cheap and easy virtualization, but I still have some clients who use it. While doing some maintenance work today on one client’s Pair.com account, I started to twitch when I realized I was about to make some changes without using version control. I checked for Bazaar, Mercurial, and darcs command-line binaries; only darcs was installed, luckily a fairly recent version (1.
Thanks to the helpful folks on the #svn IRC channel I learned that it is possible to turn a directory into a svn checkout in-place, i.e. without having to replace the directory itself with a fresh checkout after you svn import. This is very handy for things like /etc files and other stuff that you’d rather not be shuffling around unnecessarily. The key nugget of info is here in the svn FAQ.
Preamble This article is two things: A description of one way to use version control with a Django project An introduction to using the darcs distributed version control system in particular First, though, a mini-sermon which someday will be a post in the You Really Should series: You really should use version control. Most of you probably do. But if you’re among those not using version control to manage your software projects, start now!
I banged my head against this one for a while before figuring it out, so I’m posting the solution – for my own future reference if nothing else. I’ve been working on extending Textmate’s Markdown language bundle. The development versions of the bundles are stored in a repository managed by Subversion. I noticed that the bundle’s name started with a lowercase letter, unlike the other bundles, so I did a quick svn mv to fix it: