さくらインターネットに構築した trac で trac-post-commit-hook
trac サイトを構築した時のメモ の続き。
trac を構築していて trac-post-commit-hook を使っていないのはありえない、っていうくらい便利な trac-post-commit-hook ですが、さくらに構築したときにものすごく手間取ったのでメモ。
ちなみに trac:0.10.4、subversion:1.2.3 です。
詰まったところ
svnlook で取得したログが文字化け
表示できない文字は、Subversion が ?\xxx で置換する?
post-commit
最終的に post-commit はこうなった。XXXはさくらのユーザ名を指定して、TRAC_REPOSに trac のパスを指定する。
#!/bin/sh
REPOS="$1"
REV="$2"
USER_HOME="/home/XXX"
TRAC_REPOS="/path/to/trac/"
BIN="${USER_HOME}/local/bin"
LOG=`${BIN}/svnlook log -r "${REV}" "${REPOS}" | ${BIN}/svnlog2utf8`
AUTHOR=`${BIN}/svnlook author -r "${REV}" "${REPOS}"`
PYTHONPATH=${USER_HOME}/local/lib/python:${USER_HOME}/local/lib/python/site-packages;export PYTHONPATH
/usr/local/bin/python ${REPOS}/hooks/trac-post-commit-hook \
-p "${TRAC_REPOS}" \
-r "${REV}" \
-u "${AUTHOR}" \
-m "${LOG}"あとは post-commit と trac-post-commit-hook を、 Subversion のリポジトリの hooks ディレクトリにコピーしてやればOK。
さっき気付いたんだけど、Windows版ではチケットに転記されるログが最初の1行だけなのに、さくらに構築したら何もしなくても普通に全部転記されてた。
Windowsでやってた時は、なんとか全部転記させようといろいろ苦労したのになあ?なんでだろう?