Trac野郎はじめました。
Movable Typeプラグインやらいろいろなツールをcode.as-is.netで公開してきましたが、ついに私もTrac野郎になりました。
もともとViewVCとMoinMoinを組み合わせて使っていましたが、どちらもさっぱりアップデートがないのでつまらなくなってきてしまったので。
特に設定に悩むようなところはありませんでしたが、私はMT関係とそれ以外用にsubversionリポジトリを分けていたのでそれを一個にまとめる必要がありました。Tracプロジェクトを2つに分ければ一個にまとめる必要もないのですが、両方メンテナンスするのは明らかに面倒すぎますから。
subversionリポジトリのマージは、同じ名前のディレクトリがなければ以下のようにしてしまえばいいだけです。
$ svnadmin create [new-repository-path] $ svnadmin dump --incremental --quiet [old-repository-path1] > dumpfile $ svnadmin dump --incremental --quiet [old-repository-path2] >> dumpfile $ svnadmin load [new-repository-path] < dumpfile
私の場合、同名のディレクトリがあったので実はかなり苦労しましたが、その方法を思い出すといやな汗が出てくるので書きません。ちなみにリポジトリを上の方法でマージすると、リビジョン番号が日時順と一致しなくなりますが、細かいことは気にしない方針で。コミッターは私しかいませんし、過去のchangesetなんて大抵役に立ちません。
というわけで、プラグインなどへの改善意見などは下記でも受け付けております。
New Ticket - Ogawa::Code - Trac
追記: やっぱりスパムが来るんだなあ。とりあえずanonymousではticket作れないようにした。OpenID認証するようにしようっと。
ちなみにhttpd.confには以下のように書いてあります。
# Trac
<IfModule mod_python.c>
<Location /project1>
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /var/www/projects
PythonOption TracUriRoot /
</Location>
</IfModule>
<IfModule !mod_python.c>
<Directory /usr/local/share/trac/cgi-bin>
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
<IfModule mod_fcgid.c>
ScriptAlias /project1 /usr/local/share/trac/cgi-bin/trac-project1.fcgi
</IfModule>
<IfModule !mod_fcgid.c>
ScriptAlias /project1 /usr/local/share/trac/cgi-bin/trac-project1.cgi
</IfModule>
</IfModule>
# Trac authentication
<Location "/*/login">
Require valid-user
AuthType Digest
AuthName "TracAuthRealm"
AuthUserFile /var/www/auth/trac.digest
</Location>
肝は、URLのルートにプロジェクトディレクトリを配したいが、URLのルートにはrobots.txtなどを必要に応じて配したい、ということ。
mod_pythonを使う場合には、新たにプロジェクト(project2)が追加された場合でも「Location /public」の部分を「LocationMatch "/(project1|project2)"」のように変更するだけで済みます。
mod_fcgid、mod_cgiを使う場合には、厄介なことに複数のインスタンスにせざるを得ないでしょう。プロジェクトごとにブートストラップ用のスクリプトを用意し、「ScriptAlias /project2 /usr/local/share/trac/cgi-bin/trac-project2.fcgi」を追加していくことになります。
Comments and Trackbacks