railsアプリの欠点のひとつはファイルのアップロードが大変なことでしょう。
そこで次のようなrakeを作って、rsyncをつかってサーバと同期するようにしました。
これでテストサーバにアップロードするのが簡単になります。

deployするときはcapistranoの方が楽そうですが、開発段階ではいちいちsvnにコミットせねばならず無駄にコミットを繰り返すことになってしまいます。
おそらくこちらの方がよいでしょう。

参考につくったrakeファイルを置いておきます。これを lib/tasksに入れておけばOK。

SERVER=”username@domain.name”
APP_DIR=”/path/to/merb/root/”

namespace “rsync” do

desc “do rsync”
task :do do
sh “rsync -avz –delete –exclude ‘.pid’ –exclude ‘log/’ –exclude ‘.svn/’ –exclude ‘tmp/’ –exclude ‘*~’ –progress ./ #{SERVER}:#{APP_DIR}”
end

desc “test rsync”
task :test do
sh “rsync -avz –delete –exclude ‘.pid’ –exclude ‘log/’ –exclude ‘.svn/’ –exclude ‘tmp/’ –exclude ‘*~’ –progress –dry-run ./ #{SERVER}:#{APP_DIR}”
end
end

desc “alias do rsync”
task :rsync => “rsync:do”

desc “reset merb”
task :restart do
sh “ssh #{SERVER} touch #{APP_DIR}tmp/restart.txt”
end

これを使うと merb restart で再起動(mod_rack使用時のみ)でき、merb rsyncでrsyncを実行、merb rsync:testでrsyncの内容を確認することができます。