FTP bad, versioning good

You may have noticed a little downtime Sunday evening. I was able to get the Domaki code under version control (http://en.wikipedia.org/wiki/Revision_control) which I highly recommend. It allows you to kick FTP to the curb and do everything with “svn commit” and “update” commands.

The main reason for doing this was my extreme inability to remember which files I’ve changed. Subversion (http://subversion.tigris.org/) takes the worry out of my day by committing the necessary files from my local machine to my repository. I can then update my live site copy with a simple update command. My setup is pretty simple. My repository is on Dreamhost. I have have a local copy checked out on my laptop where I make my changes. I have another copy checked out on Dreamhost thats served up fresh to you. I commit changes via my local terminal and ssh to my live directory on Dreamhost to update the code to the latest version. Pretty simple!

Trac (http://trac.edgewall.org/) is also handy for navigating the repository online but acts more as a project management tool. Anytime I come across a bug or a UI enhancement I can open a ticket to Trac which can be closed upon completion. It can also review and compare changes of any file if you ever have to roll a file back to an older version.

Textmate (http://macromates.com/) has some handy Subversion key commands but I haven’t had a chance to fully explore them.

If you’re using Django or Python make sure you edit your config file under your hidden .subversion directory to exclude .pyc files. Otherwise you’ll be making a ton of unnecessary file updates.