さくらインターネットに構築した 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でやってた時は、なんとか全部転記させようといろいろ苦労したのになあ?なんでだろう?