なんかもっと上手い方法がありそうな気がするので、誰かの添削を期待して晒してみます。
Capistrano のバージョンは 2.5.5 基本的な設定の話は省略します。
Capistrano がリポジトリにアクセスするタイミングについて。
cap deploy
このタスクが完了するまでに、Capistrano は 2回リポジトリにアクセスします。 それぞれの経路が違うので、それぞれに対処が必要です。
svn info svn://example.com/svn/reps/application/trunk -rHEAD
Capistrano の設定ファイルを書く上で問題になるのは、1ヶ所だけだと思います。 svn+ssh に含まれる ssh の接続用ユーザ情報を書く設定項目が無いのです。
set :user, 'username'
で設定できるログインユーザは、ローカルからデプロイ先へのログインにしか使用されません。
Capistorano は svn コマンドを何も考えずに利用するので、結果としてデフォルト値が採用されます。 結果として、
が使用されます。
これらがどちらも、リポジトリのホストへ ssh でアクセスできれば良いのですが、 うちはそうなっていない(後者はお客様指定のアカウント名だったりする)ので、 困ったことになります。
多分、これが順当なのかなと思っています。
export SVN_SSH='ssh -l username -i /path/to/private_key'
config/deploy.rbに
set :repository, "svn+ssh://username@example.com/svn/reps/application/trunk"
などとしてしまう。
お客様のサーバにできるだけ痕跡を残したくない場合に。
セコメントをする