When deploying a Python web application what are the pros and cons of using the following methods to deploy the application:
- Use the VCS to make a checkout on the server
- Use FTP/SSH/rsync to transfer a copy of a local checkout
- Create a proper package and transfer that to the server
(Note 1 - I currently use method 1. However my repository may contain many other project related artefacts as well as the actual application, so this seems to work best with SVN where I can check out only the relevant folder - with the DVCS all or nothing approach this looks like not such a good idea). (Note 2 - I am currently switching to DVCS)