http://blog.mizzy.org/articles/2007/04/22/svn-tracwiki00
PowerPointなど、コミットされたファイルからテキストを抽出し、Trac の Wiki に投稿してくれる Subversion 用の post-commit スクリプト。
先日紹介した[2007-05-20-3] Tracプロジェクト横断検索ですが
Trac Whole Search 0.2
http://kanullogg.txt-nifty.com/kanu/2007/05/trac_whole_sear_6fb0.html
が出てます。
Tracプロジェクト横断検索公開します
http://kanullogg.txt-nifty.com/kanu/2007/05/post_ba17.html
どうやら、trac のプロジェクト一覧ページから、個別に Ajax で、地道に検索を掛けているみたい。お!?これは便利そう!ということで、会社の Trac に仕掛けてみる。
で、結論からいうと、自分では動かせずに同僚に手伝ってもらった(^^;
会社の環境だと、単純にインストールマニュアル通りにインストールしてもダメ。同僚に指摘された箇所は以下の通り
- trac_ws.js の base_url の書き換えだけではダメで、その階層の深さによって
var href_attr = $(this).href().split("/")[4];
という箇所を書き換える必要あり。たとえば base_url が "/trac/" なら、そのままでもいいけど、base_url が "/project/trac" のように階層が 1段増えていたら
var href_attr = $(this).href().split("/")[5];
のように書き換える必要がある。Javascript を真面目にやってこなかったから、気付かなかった。指摘多謝> H氏
trac のバージョンアップを思わずやってしまう。
# python setup.py install
で、インストール先とかをインタラクティブに聞いてくれたはず……とか大きな勘違い。一気に上書きインストールをしてしまう。で、問題なく動けばよかったんだけど、既存のプロジェクトが全部閲覧不可に!
ひー!
あわてて
# trac-admin /path/to/project upgrade
しまくる。ついでに apache も再起動。数分でアップグレード完了(^_^;
ほんと、あせった orz
#アップグレード手順を確認するつもりで、アップグレード……だめだめだなぁ。
以下、同僚に教えてもらったりした設定例。
Trac はなかなか便利なんですが、複数のプロジェクトを扱う場合は、すこし工夫が必要。
$ trac-admin /var/trac/hoge1 initenv 'Hoge1 Project' sqlite:db/trac.db /var/lib/svn /usr/share/trac/templates
$ trac-admin /var/trac/hoge2 initenv 'Hoge2 Project' sqlite:db/trac.db /var/lib/svn /usr/share/trac/templates
と、2つのプロジェクトを登録していた場合、
httpd.conf を
<Location "/projects/hoge1">
SetEnv TRAC_ENV "/var/trac/hoge1"
</Location>
<Location "/projects/hoge2">
SetEnv TRAC_ENV "/var/trac/hoge2"
</Location>
とか書き連ねて、各ディレクトリに、trac.cgi をコピーといった荒技を繰り出したくなるんですが(え?ならない?)、そんなことをしなくても
ScriptAlias /trac /usr/share/trac/cgi-bin/trac.cgi
<Location /trac>
SetEnv TRAC_ENV_PARENT_DIR /var/trac
</Location>
だけで OK。上の例だと
http://www.example.co.jp/trac
にアクセスすると、そのサイトで管理されているプロジェクト一覧が表示されるので、あとはそのリンクをたどればOK。もちろん
http://www.example.co.jp/trac/hoge1/
http://www.example.co.jp/trac/hoge2/
でもアクセス可能。
あとSubversion についてですが、ディレクトリを切ることでプロジェクトを分け、運用する場合の話。上記の例だと異なるプロジェクトのはずなのに、タイムラインを見ると、すべての更新情報が表示されるので、見通しが悪くなります(/var/lib/svnの部分)
ファイルシステム上に、そんなディレクトリねぇよ! とか思わず
/var/lib/svn/hoge1
とか指定しておくと、リポジトリツリーの hoge1 以下の変更のみが表示されるので、見通しがよくなります(cf. http://wota.jp/ac/?date=20060301#c01)
あとで直す場合は
/var/trac/hoge1/conf/trac.ini
[trac]
repository_dir = /var/lib/svn/hoge1
を修正すればOK。
ちなみに Trac の機能に不満をもったら
http://trac-hacks.org/
へアクセス。きっと欲しい機能をサポートしたプラグインがあるはず。