redmineのチケットにsubversionのコミットからリンクさせてもチケットへのcommit反映がリアルタイムじゃないのはcronを回して解決する
schemeがおなかすいて頭がまわらなくてしんどいのでlinuxの設定でもするか。お金ないなぁ。ごはんだべたいなぁ
redmineのsubversion参照がリアルタイムじゃないっていうかデフォルトではredmineからは自動でsubversionを見に行ってはくれない。リポジトリタブをクリックして手動でみる、
つまり手動でsubversionを参照させないとredmine全体にcommitとかが反映されない、と。
これはいただけない。っていうかredmineのリポジトリタブとか普通は一番みない部分なんじゃないかと思うのですが。
cronでスケジュールでスクリプト回して対応するらしい
cronに設定すればいいのね。
FAQ - Redmine
設定
colinuxのサイトで拾ってきたfedora7イメージcron入ってないじゃん・・・入れるか。
ってかcron初体験だわ。たぶん
cronインスコしてchkconfigを設定しつつ、とりあえずcronを起動
yum -y install yum-cron && chkconfig --level 2345 crond on && chkconfig --list crond && /etc/rc.d/init.d/crond start
起動OK。
redmine用のスクリプト作成。
#hogehoge.sh cd /var....../redminrootp ruby script/runner "Repository.fetch_changesets" -e production
/etc/crontabに直書き
スタイリッシュではないな
毎分回し。とりあえずroot権限で回しておく。
/etc/crontabファイルに
* * * * * root /path/to/hogehoge.sh
を追記。
redhat系ではcrontabファイル直書は推奨されないそうです。cron.d/配下とか/var/spool/配下のファイルをcrontabコマンドでhogehogeせよとのこと。めんどくさい!のでそんな手には乗らない。
crontabファイルを600にしてないとうまく回らないのでchmodしておきます。
ご飯食べました。
(実はうまく動かなくて/var/log/cronのログを確認したら"BAD FILE MODE(/etc/crontab)"を吐いてた。反射的にchmod 755した気がする。)
chmod 600 /etc/crontab
たぶん大丈夫だけど一応権限を上書きしておくに越したことはない。
chmodしておかないとシェルスクリプトのrubyがうまく走ってくれないみたいで。手動でスクリプトを実行したときとcron経由でキックしたときとのtopで見た感じのプロセス遷移が違ってきてる。まぁ、結果うまくsubversionのfetchが出来ないってだけだけど。
crondを再起動
/etc/rc.d/init.d/crond restart
crondを再起動して設定終了。
確認
topとかみると毎分なんかプロセスがキックされてる。=>cronのキックOK
Firefoxをチケットのページ開いて自動更新モードにしておいて適当にそのチケットに向けてcommitする =>
たばこをすってる間にcommit反映。OKと。
結果
redmineからsubversionを毎分参照に行くことになる
=>更新はリアルタイムじゃなくて最大1分のラグが発生すると。
まぁ、1分なら何とかごまかせるだろ。いろいろを。