SOFTELメモ

Softel Inc.

【subversion】svn+sshって、いちいちtunnelsを定義しないといけないの?

問題

svn+sshをするとき、リポジトリによってポートや認証の鍵が個別に違う場合、トンネルの設定を ~/.subvresion/config の [tunnels] セクションに ssh=~~~~~、hoge=~~~~~ など書いて、いろんな設定を作れるけど、いちいち設定ファイルに書かないとだめ?

リポジトリのURLってsvn+ssh://~~のままにしておきたいけど無理?

トンネルをいちいち定義すると、URLも個別に変わって(svn+hoge://~、svn+fuga://~~)、結構うっとうしいんだけど。

答え

URLは svn+ssh://~~ に統一できる。

設定ファイルに書いていることはコマンドのオプションに書くことができる。

例)そのサーバーは、sshのポートが12345、鍵認証の鍵があって、ログインユーザーは fugauser

$ svn checkout --config-option "config:tunnels:ssh=ssh -p 12345 -i /home/hogeuser/.ssh/id_rsa -l fugauser -q"

ヘルプを見ると、そういうことができると書いてある。

$ svn checkout --help
(中略)
  --config-option ARG      : set user configuration option in the format:
                                 FILE:SECTION:OPTION=[VALUE]
                             For example:
                                 servers:global:http-library=serf

使用例

URLは「svn+ssh://example.com/home/svn/repos/hoge」。ポートは12345。sshのユーザー名はfuga。svn update したい。

svn update --config-option "config:tunnels:ssh=ssh -p 12345 -l fuga -q"

関連するメモ

コメント