TracでGitを利用する

このエントリーをはてなブックマークに追加このエントリのはてなブックマーク数

最近、Redmineを利用している人にRedmineを利用する理由を聞くと、意外とGitが使えるからという理由で使っている方が多いようです。あまり知られていませんが、Tracでも実はGitを利用することができます。ここでは、KanonでのGitサポートを例としてTracでGitを使う方法をご紹介します。

TracでGitを利用したい方のご参考になればと思います。

Apacheの設定

まず、Webでリポジトリを公開するための設定をApacheの設定ファイルに記述します。

Alias /git /var/opt/kanon/git
<Location /git>
        Options Indexes
        DAV on
        AuthType Digest
        AuthName kanon
        AuthUserFile /etc/opt/kanon/kanon_users.htdigest
        Require valid-user
</Location>

GitのリポジトリをApacheで公開するときは、WebDAVを利用するように設定しておくだけでokです。上記の設定で/var/opt/kanon/gitディレクトリの下に作成したGitリポジトリが公開されます。

Gitリポジトリの作成

サーバ上で公開するGitリポジトリを作成するには、下記のようにします。

# git init --bare /var/opt/kanon/git/GitProject
# git --git-dir=/var/opt/kanon/git/GitProject update-server-info
# chown apache.apache -R /var/opt/kanon/GitProject

リポジトリ作成時に–bareをつけるのと、update-server-infoでサーバ用のファイルを作成するのがポイントです。pushを許可する場合は、ファイルの所有者をApacheにするのを忘れないようにしましょう。

Tracのリポジトリブラウザの設定

次は、Tracのリポジトリブラウザの設定を行ってみましょう。リポジトリブラウザの設定を行えば、TracからGitのリポジトリを参照できるようになります。

まず、TracのGitプラグインをインストールします。ルートユーザで次のコマンドを実行してください。

# easy_install https://github.com/hvr/trac-git-plugin/zipball/v0.12.0.5

trac.iniには次の設定を追加します。コンポーネントを有効化し、リポジトリの設定を行います。

[components]
...
tracext.git.* = enabled
...

[trac]
...
repository_dir = /var/opt/kanon/git/GitProject
repository_sync_per_request = (default)
repository_type = git
...

これで、TracのリポジトリブラウザでGitのリポジトリを見ることができるようになりました。

おわりに

MercurialやBazaarに比べると、GitはただWebDAVでリポジトリを公開するだけでよいので設定はシンプルです。ただし、コミットフックが使えなどの若干の制限があります。コミットフックを利用して本格的な運用を行う場合は、SSH経由でのアクセスにした方が良いようです。

Leave a Reply

*