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
- Create a production/live build folder in your source tree and add it to the repository.
- Modify our build system to create the live builds in this folder and commit to the repository.
- On the live server the site is deployed as a checkout of the live build folder.
- 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.