I'm in the process of writing some capistrano recipes to make deploying to Amazon's Elastic Compute Cloud (ec2) easier. Since I'm making this project available for general consumption, I wanted a way to make it easy for someone to try it out without having to check something into source control.

Fortunately, the capistrano code is nicely organized, and that made it easy for me to add a "noscm" provider that will work with the "copy" deploy strategy to simply copy the projects directory tree to a remote server rather than trying to check it out from the remote server. You can get the code here: http://rubber.rubyforge.org/svn/trunk/lib/capistrano/noscm.rb and then add the following lines to your deploy script to get it to work:


require 'capistrano/noscm'
set :scm, :noscm
set :deploy_via, :copy
set :copy_strategy, :export


This works for my limited use case, YMMV - things like "cap deploy:pending:diff" definately won't work as all I've implemented from the capistrano scm interface is the "export" ability.