SwitchTower 0.10.0
It’s a week later than I said, but it’s here at last: SwitchTower 0.10.0. I figure there will be one or two more releasees before 1.0.
This release addresses several longstanding bug reports and adds some nice new functionality. To update, just do:
gem install --include-dependencies switchtower
And then update each of your apps by doing:
switchtower --apply-to /path/to/app
When prompted, keep your config/deploy.rb file, and replace your lib/tasks/switchtower.rake file.
You can read the complete changelog, but here’s a quick overview of some of the most notable changes:
Bugs Fixed
- Handle SSH password prompts formatted like “someone’s password:”
- Allow the sudo password to be reentered if it was entered incorrectly
- Errors during checkout are now caught and reported early
- Avoid timeouts on long-running commands
- Add a small sleep during command processing to give the CPU a rest
- Rake tasks should work much more nicely on Windows (you’ll need to do
switchtower --apply-to /path/to/appto update, keeping yourconfig/deploy.rband overwritinglib/tasks/switchtower.rake)
New Features
ssh_options variable
There is now an ssh_options hash that you can use in your recipe files to set custom SSH connection options, like setting a non-standard port to connect on:
1 |
ssh_options[:port] = 2345 |
Allow svn checkouts to use export instead of co
If you don’t want to use an svn co to checkout your code, you can set the :checkout variable to :export, and SwitchTower will use svn export instead.
1 |
set :checkout, :export |
This variable defaults to :co.
update_current task
There is now an update_current task that just does an svn up on the last-deployed release. This is useful for trivial updates, like when a template changed.
cleanup task
You can easily remove unused releases from your deployment directories with the cleanup task. It will (by default) keep the 5 most recent releases, and delete the rest.
SFTP for file transfers
Net::SFTP is now used (if it is available) for file transfers. This should make transferring large files more robust, as well as allow binary characters in files.
restart_via variable
You can now set the :restart_via variable to :run, if you need to have the restart task use run instead of sudo.
1 |
set :restart_via, :run |
This defaults variable to :sudo.


Reader Comments
2 Jan 2006
2 Jan 2006
2 Jan 2006
2 Jan 2006
2 Jan 2006
2 Jan 2006
3 Jan 2006
3 Jan 2006
3 Jan 2006
12 Jan 2006
17 Jan 2006
23 Jan 2006
23 Jan 2006
24 Jan 2006
24 Jan 2006
24 Jan 2006
24 Jan 2006
25 Jan 2006
25 Jan 2006
25 Jan 2006