バグ/課題追跡・プロジェクト管理の Ruby 製 Web アプリケーションである
Redmine。
その Redmine のこんな話題。
Redmine.JP - 「リポジトリ」を開くまでSubversion等のリポジトリへのコミットが「活動」に表示されません
http://redmine.jp/faq/repository/subversion/
上記を読むと、cron (Linux の話。すなわち Windows のタスクスケジューラですね) 使って定期的に Subversion のリポジトリ変更をポーリング監視しましょう、ということらしい。
まぁ、それがいちばん正解なのかもしれないが、今回はちょっとソースコードに手を入れて、「活動」ページを表示する時点でチェンジセット情報を取得するようにしてみた。
「活動」ページの URL は ".../projects/activity/(プロジェクトID)" となっているので、projects コントローラのソースを探し出し(projects_controller.rb でした)、テキストエディタで開いて activity メソッドの所在を突き止める。
で、activity メソッドの冒頭にて、リポジトリへのコミット情報を取得するコードを1行書き足した。
def activity
...
@project.repository.fetch_changesets if @project.repository
...
RSS取得時だけ更新するなら、if の末尾にさらに "
&& params[:format]=='atom'" と条件を書き足せばよい。
あとは Rais 再起動して変更を適用し、完了。
なお、コミット情報取得には時間がかかることもあるようなので、
Redmine.JP - 「リポジトリ」画面を開くのが遅い
http://redmine.jp/faq/repository/repository_browser_is_slow/
やっぱり cron で定期監視がいちばん無難らしい。
ただし、「活動」ページ表示時にコミット情報取得する今回の改造の結果でも、いまのところ特に遅くなるような感じはしなかった。