What is your version control and deployment workflow with Rails?

deployment, ruby, ruby-on-rails, version-control, workflow

Solution

- Create a copy of my personal Rails 2.1.1 template with preinstalled plugins and frozen gems.

- Change DB passwords, session secret/name and `deploy.rb`.

- Create a private or public repository on GitHub as needed.

- Push the empty rails project to GitHub.

- SSH to Server and configure apache (copy Virtual Host file and mongrel config files from old project)

- Create empty database on MySQL server

- `cap deploy:setup && cap deploy:cold`

If everything works so far: Start developing and committing to GitHub. `cap deploy` as needed.

Update: Don't forget to write tests for everything you do!

Problem

Especially when considering a fresh Rails project, what does your version control and deployment workflow look like? What tools do you use? I'm interested in answers for Mac, *nix and Windows work machines. Assume a *nix server. I'll edit for clarity if need be.

Original source