Topic: Deployment, Capistrano, and Subversion

I'm working on deploying a basic app just to get an idea of how to deploy applications.  I've spent the last two days setting up a couple of test boxes one with Ubuntu 6.1 and another with CentOS 4.4 which will be for testing deployment locally.  I've also got a hosting account with MT on the grid-server and a VPS which I'm currently working on getting rails up and running for production deployment. 

I've scoured the web and got a lot of information about how to do this successfully however as I've never used subversion, capistrano or deployed an application and I'm finding it pretty confusing.

I thought it might be easiest to setup deployment on the MT grid server first since they have some documentation on how to do this even though it's not a conventional deployment compared to other rails hosts.  I've setup a repository and setup subversion however I don't understand the following from the MT instructions.

Now you should create a layout for your various projects. Most people will probably want to use the trunk/branch/tags style. cd to the tmp directory and create the layouts for as many projects as you need:

      mkdir website1
      mkdir website1/trunk
      mkdir website1/branches
      mkdir website1/tags
      mkdir website2
      mkdir website2/trunk
      mkdir website2/branches
      mkdir website2/tags


Has anyone here deployed on MT's grid or can anyone explain the above?

Re: Deployment, Capistrano, and Subversion

I recommend learning Subversion on its own first. That in itself takes some getting used to.

The trunk/branches/tags structure is a common for subversion projects. However, this setup is not required. I'm assuming the website1/website2 layout they recommend isn't required either - it is just a suggestion on keeping the projects organized (if you have several in the same subversion repository).

Give the subversion book a good look over and play around with the commands - importing a project, adding a file, updating the file, moving it, removing it, reverting it, etc.

Once you get the hang of that, deployment with capistrano will probably make more sense. It basically connects to the subversion repository and checks out the latest version. There's an excellent screencast at Peep Code on Capistrano. It is $9, but well worth it.

Railscasts - Free Ruby on Rails Screencasts

Re: Deployment, Capistrano, and Subversion

Thanks Ryan,  I've downloaded the Peepcode screencast and downloaded the documentation for subversion as like you've stated, it's a learning curve on it's own.  I'm looking forward to overcoming this learning curve so I can get down to the nitty gritty of what I want to do which is build rails applications.