Feb 9, 2007

Trac野郎はじめました。

Movable Typeプラグインやらいろいろなツールをcode.as-is.netで公開してきましたが、ついに私もTrac野郎になりました。

もともとViewVCMoinMoinを組み合わせて使っていましたが、どちらもさっぱりアップデートがないのでつまらなくなってきてしまったので。

特に設定に悩むようなところはありませんでしたが、私は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」を追加していくことになります。

About Me

My Photo

つくばで働く研究者

Total Pageviews

Amazon

Copyright 2012 Ogawa::Buzz | Powered by Blogger
Design by Web2feel | Blogger Template by NewBloggerThemes.com