イメージ的に,Subversion = Apache2にmod_dav_svn設定してがりがり -> なにかとめんどくさー,だったんだけどsvn+sshを使うとすげー楽に使えるということを今日知った.
svn+sshだとmod_dav_svnの設定をしたり,svnserveをデーモンとして立ち上げておく必要も無い.サーバ側では基本的にSubversionがインストールされていて外からSSHで繋げれればOK.
例えば,svn.temp.comというサーバの/path/to/svn/reposにリポジトリを作ってあるとしたら,クライアント側のsvnで
$ svn co svn+ssh://svn.temp.com/path/to/svn/repos
とかすればチェックアウトできる.リポジトリ作っとく以外はサーバにほとんど手を加えなくてもいい.
この例では、Subversionクライアントはローカルなssh プロセスを起動し host.example.comに接続し、ユーザ harryとして認証し、そのあとプライベートな svnserveプロセスをリモートマシン上で、ユーザ harryとして実行する、というものです。
と,本家マニュアルの翻訳にもあるように,リモートで起動されたトンネルモードのsvnservがstdinとstdoutを通して処理を行ってくれているようだ.
まぁ,sshでログインできなきゃ使えないので,公開用のリポジトリや複数人で使うようなリポジトリには使えない.でも個人用のリポジトリで使うにはかなり手軽でGood.