Subversion as a deployment tool

I was thinking on the way to work today that subversion would be a great tool to overcome some of the difficulties associated with frequent deployments to the web serevers. Here’s how I see it working

  1. Create a production/live build folder in your source tree and add it to the repository.
  2. Modify our build system to create the live builds in this folder and commit to the repository.
  3. On the live server the site is deployed as a checkout of the live build folder.
  4. Once the build passes unit tests and QA all we need to deploy is to update the working copy on the live server. The big advantage here is that rollbacks etc. are automatically handled because we can always roll back to a previous version. Also you get a nice history of all the updates to the live server.

3 Comments

  1. This is an excellent idea and I try to do something similar to this but in a much less advance and automated way than this. Great Idea and I think something like this should be made available/developed.

    Keep up the postings of links and thoughts they are very helpful.

    D.K.

  2. I use this method for my personal sites. The only issue is that you have to logon to the remote site every time you need to upload something. Not a big deal – but still a minor irritation.

    Another option is using rsync.

  3. This is a great system – I designed a system much like it using Git a few months ago, I slapped a web interface ontop of it making it user friendly and fairly idiot proof. My users like having a big UNDO! button!