Subversion のコミットで Redmine の更新が遅い

メモ:

Subversion のコミットで、 Redmine のチケットに対するステータスや進捗率を更新していたのですがプロジェクトが増えるにつれてコミットが遅くなってきました。どうやら全プロジェクトに対して変更を投げているような感じです。

ここでは、コミットのレスポンスを改善すべくプロジェクト指定で変更を通知するよう設定していきます。(Windowsのネタではないです。が、とりあえず。)

post_commt の設定

レスポンスの改善方法については、 Redmine のガイドページ(Attaching an existing repository to a project)に記載されているのですが、 API に ID (プロジェクトのID) を指定することで指定のプロジェクトに対して通知をすることができます。

http://redmine.example.com/sys/fetch_changesets?key=<WS key> (=> fetches changesets for all active projects)
http://redmine.example.com/sys/fetch_changesets?key=<WS key>&id=foo (=> fetches changesets for project foo only)

また、 FAQ にあるようにバックグラウンドでコマンドが実行されるようにすることでレスポンスが改善しました。

今のところ次の post-commit スクリプトでうまくいっています。

PROJ=$(echo $(basename ${REPOS} | tr [A-Z] [a-z]))

/usr/bin/curl -s "http://10.6.1.62/sys/fetch_changesets?key=uY7TzG0mPBNhK1I1cklS&id=${PROJ}" > /dev/null 2>&1 &