フリーで使えるBTS(バグトラッキングツール)を導入しようと思い情報収集していたところ、
Tracより良さげなRedmineにたどり着きました。
Tracと比較してのメリットは、こちらに詳しく掲載されています。
ということで、今回はRedmineインストールの顛末記です。
Tracと比較して個人的にメリットを感じたのは、
- 複数プロジェクトを管理できる
- デフォルトで日本語対応している
- ガントチャートが使える
- RailsアプリでPassenger(mod_rails)に対応(v0.7より)
また、プロジェクト毎に担当者を設定できるので、社外開発者に解放しても心配ありません。
最後のPassenger対応については、mongrelサーバで動かすよりも実際簡単でした。インストール方法も公式ページに詳細が掲載されています。
■メール通知をGmailのsmtpサーバを利用するようにカスタマイズ
Gmailのsmtpを利用するには、RailsにTLSプラグインを入れなければなりません。
# gem install tlsmail
そして、Redmineの config/environment.rbの最後に以下の2行を追加します。
require "tlsmail"
Net::SMTP.enable_tls(OpenSSL::SSL::VERIFY_NONE)
これで送信することができました。■Subversionリポジトリと連携
Redmineが動作しているサーバに、Subversionリポジトリがあるので連携させようと思ったのですが、ここでハマりました。どのように設定しても、「リポジトリに、エントリ/リビジョンが存在しません。」というエラーが表示されます。
同一サーバ上にリポジトリが存在するので、URLは「file:///リポジトリへのパス」と指定すればいいはずなのですが、一向にうまくいきません。。その他スキーム(http://, svn://)も試したのですがダメでした。
エラーログは下記の通り。
You have a nil object when you didn't expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.[]
エラーが出ている箇所のソースは以下の22行目です。
$REDMINE_HOME/lib/redmine/scm/adapters/subversion_adapter.rb
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
require 'redmine/scm/adapters/abstract_adapter'
require 'rexml/document'
module Redmine
module Scm
module Adapters
class SubversionAdapter < AbstractAdapter
# SVN executable name
SVN_BIN = "svn"
# Get info about the svn repository
def info
cmd = "#{SVN_BIN} info --xml #{target('')}"
cmd < doc.elements["info/entry/repository/root"].text,
:lastrev => Revision.new({
:identifier => doc.elements["info/entry/commit"].attributes['revision'],
:time => Time.parse(doc.elements["info/entry/commit/date"].text).localtime,
:author => (doc.elements["info/entry/commit/author"] ? doc.elements["info/entry/commit/author"].text : "")
})
})
rescue => e
logger.error(e)
end
16行目の、#{SVN_BIN} info –xml #{target(”)} こいつを手動で叩くと(もちろんApache実行ユーザで)、きちんとXMLで結果が返ってきているのは確認しています。
Redmineを使ってドキュメント〜ソースまで一気通貫で管理できる!と
意気込んでいたのですが、諦めようかな。。
どなたかヒントをお持ちでしたらご教授いただけますか?
2008/05/15 追記
解決しました。svnの設定情報が/root配下のものを読み込んでおり、Redmineの実行ユーザがapache
なのでPermissionエラーとなっていたようです。
–config-dir オプションを利用して、apacheユーザーのホームディレクトリの設定情報を読み込むように変更します。
$REDMINE_HOME/lib/redmine/scm/adapters/subversion_adapter.rb
require 'redmine/scm/adapters/abstract_adapter'
require 'rexml/document'
module Redmine
module Scm
module Adapters
class SubversionAdapter < AbstractAdapter
# SVN executable name
# SVN_BIN = "svn"
SVN_BIN = "svn --config-dir /home/apache " # こうする
# Get info about the svn repository
def info
11行目のように書き換える。
あー、すっきりした!