I’m building a Web2Py-based web application and am doing most of my development right on a remote EC2 development server. I would like to version control the entire system, including all python modules, web pages, and Apache config files. The files are obviously scattered across my Linux box, but I would like to be able to checkout/commit using a single command. I’m new to SVN on the command line- Is there a way to do this using a some sort of virtual directory with sym links?
Any thoughts are welcome. Thanks.
For a single developer, Git ( book ) is better suited for convenience. You can “commit” locally very easily, and push changes to a remote server, which could be your EC2 instance, it just needs an SSH connection to work. But I would probably go with a hosted solution like GitHub or any other hosting solution that has SSH and the ability to install Git. I use GitHub for my public projects and DreamHost for my “private” projects.
You would put all your files in one directory structure and then deploy them using some automated process. For Python I would suggest something Python standard like distutils or even easy_install. For more complicated environments, you want to consider something like Chef, which will be extremely important if you start scaling out to more than a single EC2 instance. Even without the multiple server needs something like Chef for repeatable automated deployments is what an efficient developer does.
Just don’t get tempted to write a “quick and dirty” shell script to do deployments, they are brittle and very un-maintainable. If you don’t like Chef, research alternatives and take the time to learn one. The time spent will be made up for down the line.