[geshi lang=sh ln=n]
Thanks for this tip, Lorna. It really helped us to come up with a release procedure that switches releases instantaneously.
It would be really useful to see an example of this technique in your post. This is what we came up with using the release date and an integer to label each release:
Move to the host directory:
$ cd /path/to/hosts
Check what the next release number should be:
$ ls -al releases
Prepare code from staging to be the next release:
$ rsync -a –exclude=.svn /path/to/hosts/staginghost/ /path/to/hosts/releases/example.com-YYYYMMDDVV
Sanity check that the new release is ready:
$ ls -al releases
Prepare a symlink to the next release:
$ ln -s releases/example.com-YYYYMMDDVV example.com_next
Switch symlinks to make new release live:
$ mv -fT example.com_next example.com
[/geshi]