下記URLのように、svnでコミットする際に、コメントにrefs #1みたいにして、tracのチケット履歴にコミットしたコメントとソースコードへのリンクを自動で入れる連携を行うまでのメモ
http://www.thinkit.co.jp/cert/article/0712/4/4/3.htm
結構はまったのでメモしときます。サポートツール系ではまると萎えるなぁ。
httpdインストール
yum -y install httpd yum -y install mod_dav_svn
svnインストールなど
yum install subversion リポジトリ作成 mkdir /home/hoge/svn/ cd /home/hoge/svn/ svnadmin create --fs-type fsfs repo1 svnクライアントからは、下記のようにアクセス svn+ssh://hoge@192.168.1.2/home/hoge/svn/repo1 apacheからリポジトリを参照するために、apache権限でリポジトリが見れるようにパーミッションを変更 (mod_dav_svn経由でsvnを利用している場合は不要) chown hoge.apache /home/hoge chmod 750 /home/hoge
tracでphpソースコードを参照するためと、色をつけるためのインストール
yum install php php-cli yum install enscript
tracインストール
yum -y install python yum -y install python-setuptools.noarch yum -y install mod_python wgetでhttp://www.i-act.co.jpここからtracの最新日本語ソースをダウンロード wget http://www.i-act.co.jp/project/products/downloads/Trac-0.11.3.ja1.zip unzip Trac-0.11.3.ja1.zip cd Trac-0.11.3.ja1 python ./setup.py install mkdir /var/www/trac chown -R apache.apache /var/www/trac htpasswd -c /var/www/.htpasswd hoge
もしyumでtracを入れる場合は、下記を参照に。
http://www.hanada.org/setting-up-trac-on-centos5
trac用httpのconfを作成
#vi /etc/httpd/conf.d/trac.confSetHandler mod_python PythonHandler trac.web.modpython_frontend PythonOption TracEnvParentDir /var/www/trac/ #PythonOption TracUriRoot /trac SetEnv PYTHON_EGG_CACHE /var/www/.egg-cache AuthType Basic AuthName "trac" AuthUserFile /var/www/.htpasswd Require valid-user #/etc/rc.d/init.d/httpd start
tracプロジェクトの作成
trac-admin /var/www/trac/repo1 initenv 下記のように答える Project Name [My Project]> repo1 ←適当なプロジェクト名 Database connection string [sqlite:db/trac.db]> ←そのまま改行 Repository type [svn]> ←そのまま改行 Path to repository [/path/to/repos]> /home/hoge/svn/repo1 ←svnのリポジトリパス
ここまでで、下記URLでアクセスできる
http://192.168.1.2/trac/
#vi /var/www/trac/repo1/conf/trac.ini [mimeviewer] #enscript_path = enscript #下記に書き換え enscript_path = /usr/bin/enscript #php_path = php #下記に書き換え php_path = /usr/bin/php
tracの個別設定(phpのソースコードがutf8で文字化けする場合)
#vi /var/www/trac/repo1/conf/trac.ini [trac] #default_charset = cp932 #下記に書き換え default_charset = UTF8
SVNのコミットに連携してチケットにコメントを入れる
連携スクリプトダウンロード cd /var/www/trac mkdir svn-contrib cd svn-contrib svn export http://svn.edgewall.com/repos/trac/trunk/contrib/trac-post-commit-hook chmod 755 trac-post-commit-hook svnのhookで連携スクリプト呼び出し設定 cd /home/hoge/svn/repo1/hooks vi post-commit #!/bin/sh SVNLOOK="/usr/bin/svnlook" PYTHON="/usr/bin/python" export LANG=ja_JP.UTF-8 REPOS="$1" REV="$2" LOG=`$SVNLOOK log -r $REV $REPOS` AUTHOR=`$SVNLOOK author -r $REV $REPOS` ${PYTHON} /var/www/trac/svn-contrib/trac-post-commit-hook \ -p "$TRAC_ENV" \ -r "$REV" \ -u "$AUTHOR" \ -m "$LOG"
ここまでやったら、svnにコミットする際に、コメントに
refs #1 hogehogehoge
とすると、チケット1に対して、変更履歴のソースコードのリンクやコメント「hogehogehoge」が記録され、ブラウザから参照できる
ただ、今回はsvn+sshなのでhookの実行ユーザはローカルユーザであり、apacheユーザではないので、hook時にtracのdb変更などでエラーとなってしまった。下記の方法(hogeユーザのグループ権限をtracのデータに与えた)で対応(普通は必要ない)
chown apache.hoge /var/www/trac/repo1 chmod 775 /var/www/trac/repo1 chown apache.hoge /var/www/trac/repo1/db chmod 775 /var/www/trac/repo1/db chown apache.hoge /var/www/trac/repo1/db/trac.db chmod 664 /var/www/trac/repo1/db/trac.db
家の中で使う環境なので、パーミッションとかオーナーはあまり気にしないことにしたw
参考
http://d.hatena.ne.jp/slywalker/20081006/1223281504
http://www.hanada.org/setting-up-trac-on-centos5
http://d.hatena.ne.jp/Tnzk/20090210/1234277380
http://blog.aklaswad.com/2007/000164.html
http://d.hatena.ne.jp/kasahi/20070717/1184691920
http://www.ibm.com/developerworks/jp/opensource/library/os-ecl-subversion/