RedmineでSubversionのリポジトリを見られるようにしてみた

先日、QNAP TS-419にSubversionとRedmineをインストールしたので、
RedmineからSubversionのリポジトリを見られるように設定してみた。
前提条件:
・ファームウェアバージョン:3.5.0 Build 0816T
・Redmineバージョン:1.1.3.stable (MySQL)
まず、Redmineの任意のプロジェクトの設定画面を開く。
設定画面の[リポジトリ]タブを開き、
バージョン管理システムを「Subversion」、
URL、ログイン、パスワードにSubversionリポジトリ情報を入力し、
[保存]ボタンをクリックし、設定は完了。
……のはずであったのだが、

「リポジトリに、エントリ/リビジョンが存在しません。」という
エラーが表示されて何故かリポジトリが表示されません。
まずは、原因を探るために、
productionとmongrelのログを確認すると、
以下のようなエラーが出力されていた。
[Redmineのルートディレクトリ]/log/production.log
Processing RepositoriesController#show (for ***.***.***.*** at 2011-10-01 23:32:04) [GET]
Parameters: {"action"=>"show", "id"=>"********", "controller"=>"repositories"}
Error parsing svn output: undefined method `name' for nil:NilClass
Output was:
[Redmineのルートディレクトリ]/log/mongrel.3000.log
sh: svn: command not found
mongrelのログに「svn: command not found」と出力されていて、
svnコマンドが見つからずにエラーが発生していたようである。
ググってみると公式サイトのチケットで既出であった。
http://www.redmine.org/issues/6980
早速、subversion_adapter.rbのsvnコマンドのパスを、
QNAP TS-419Pの環境に合わせて「svn」から「/opt/bin/svn」に変更する。
---[Redmineのルートディレクトリ]\lib\redmine\scm\adapters\subversion_adapter.rb
+++[Redmineのルートディレクトリ]\lib\redmine\scm\adapters\subversion_adapter.rb
@@ -21,13 +21,13 @@
module Redmine
module Scm
module Adapters
class SubversionAdapter < AbstractAdapter
# SVN executable name
- SVN_BIN = "svn"
+ SVN_BIN = "/opt/bin/svn"
class << self
def client_version
@@client_version ||= (svn_binary_version || [])
end
上記の変更で、Redmine上でSubversionのリポジトリを見られるようになった。
