In fact, an easy way to handle this is to configure the application as follows:
Just make the deployment application a working copy of your external line (project svn co to your root / www) and run svn up through the ssh console ( ssh user@host.com svn up /path/to/project ) when you need to upgrade. You can also roll back using appropriate verification mechanisms. This is important: if you do, add RewriteRules (or equivalent) to your .htaccess (or equivalent) to deny access to .svn directories . If you cannot do the above, run svn export via ssh instead (so that it will not be a “working copy”), but it will naturally be slower than doing up .
In addition, you can see what Ruby on Rails does with Capistrano .. this is the same basic concept, but supports transactional backups if the update fails in the middle, keeping each check in a separate folder and symbolically referring to the “latest” ones your directory / www.
Loren segal
source share