Redmine (3.1.0-0) から VisualSVN のリポジトリに接続

2015年8月18日現在、Stackoverflow 日本語版では Trac に関する質問0件、Redmine に関する質問16件。Qiita では Trac に関する投稿 98 件に対し Redmine に関する投稿は 487 件。つまり国内では Redmine が圧勝のようです。

ということで、今の開発現場では ITS として Redmine を採用することにしました。さようなら Trac ...

運用環境は、Windows Server 2012 R2 です。Windows Server 2008 と比べると格段にセキュリティに厳しくなっており、セットアップが面倒くさいという印象があります。> 2012 R2

bitnami から、Windows 版インストーラーをダウンロード。使用する VCS は Subversion ですが この際 Git とかも全部入りでインストールしました。

無事インストールが完了し、プロジェクトの作成とかユーザーの追加とかは滞りなくできたのですが、プロジェクトで使用することになっている既存の SVN リポジトリに繋ごうとすると

リポジトリにエントリ/リビジョンが存在しません

というエラーがでてしまいます。ログを見ると 404 で リポジトリ情報が取得できていません。どうやら SVN サーバーでは VisualSVN というのを使っているようです。VisualSVN 寡聞にして知りませんでした。リポジトリは SSL/TLS で自己証明書により公開されており Redmine を導入した Windows Server 側で証明書の信用ではじかれているようです。

ぐぐると subversion_adapter.rb の修正が必要という FAQ にヒットしました。

¥¥apps¥redmine¥htdocs¥lib¥redmine¥scm¥adapters¥subversion_adapter.rb

を開き、以下のように修正。

修正前
   str << " --no-auth-cache --non-interactive"
修正後
   str << " --trust-server-cert --no-auth-cache --non-interactive"

しかしこれだけでは、繋がりませんでした。VisualSVN サーバーのレジストリ変えたり、HTTPS 諦めて、HTTP で繋ぐように VisualSVN 側の設定変更するという記事が多かったのですが、今回は SVN サーバーに変更を加えるわけにはいきません。そこで単純に VisualSVN の自己証明書を Redmine の Windows Server 2012 R2 にインストールしてみたところあっさりとリポジトリの内容を取得できました。

証明書のインポートウィザードで簡単にインストールできました。

今回、Git もインストールしておいたので、MinGW 環境が使えて、 tail -f でログ見たり、Vim で Ruby スクリプトファイルを書き換えたりが簡単にできて助かりました。SVN オンリーの時でもインストールしておいて損はないです。