どうやら Trac の Plugin を使えば、Trac でも Subversion じゃなくて、git との連携ができるらしい。
ベースとする Trac はインタアクトさんが配布されている
Trac-0.11.7.ja1
http://www.i-act.co.jp/project/products/products.html
で、git と連携するには
GitPlugin for Trac
http://trac-hacks.org/wiki/GitPlugin
をインストールします。肝心の git 自体は、EPELリポジトリからインストールしてあります。
CentOS5 の python は 2.4 なので、多分これだろうと
sudo easy_install http://github.com/hvr/trac-git-plugin/tarball/trac-0.11-py24
とする。うまくインストール出来た見たいなので
[trac]
# simple single-repository configuration
repository_dir = /var/git/test.git
repository_type = git
[git]
cached_repository = true
persistent_cache = true
shortrev_len = 6
git_bin = /usr/bin/git
[components]
tracext.git.* = enabled
tracopt.ticket.commit_updater.committicketreferencemacro = enabled
tracopt.ticket.commit_updater.committicketupdater = enabled
としてみたら、うまく動いたみたいだ。なお、対象となる git リポジトリは
# mkdir /var/git/
# git init --bare /var/git/test.git
# git --git-dir=/var/git/test.git update-server-info
# chown apache.apache -R /var/git/test.git
として作成済。このリポジトリに https 経由でアクセスさせたいと思って、よくある WebDAV経由での方法をやってみたら push するときに、下記のようにエラー。
$ git push origin master
Username:
Password:
error: Cannot access URL https://git.example.jp/git/test.git/, return code 22
fatal: git-http-push failed
正確なソースがよくわからないけど、どうやら WebDAV だと、push がサポートされないっぽい。最近は、git-http-backend を使うらしい。なので、こいつを使うことに。apache の設定に
SetEnv GIT_PROJECT_ROOT /var/git
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias /git /usr/bin/git-http-backend/
<Location /git/test.git>
AuthType Basic
AuthName "for developers"
AuthUserFile /var/www/htpasswd.git
Require valid-user
</Location>
みたいな設定を入れておく。
社内のミラーサーバは最新のものが sync されているので、古いパッケージが欲しくなった時に困る。
古いパッケージは
http://vault.centos.org/
からダウンロードできる見たい。ありがたい......