Trac LightningとGitを組み合わせる

kanonでは無事できたので、Trac LightningでもGitを使用できるようにします。

作業前にTrac Lightningが正常に動作していることを確認しておきます。

msysGitのインストール

msysGitはある意味普通にインストールしますが、インストールパスにスペースがあると何かと面倒なので、インストール先だけ”C:\git”にインストールします。

環境変数PATHの設定

C:\Git\bin, C:\Git\libexec\git-coreにパスを通します。(C:\Gitはそれぞれインストールしたドライブ、ディレクトリに買えてください)

Git Pluginの追加

TracにGit Pluginを追加します。スタートメニュー→Trac→コマンドプロンプトでTracのコマンドプロンプトを開いて、以下のようにeasy_installでインストールします。以下は現状の最新版のインストールですが、インストール時にはそのときの最新版を必ず確認してインストールしてください。

$ easy_install http://trac-hacks.org/svn/gitplugin/0.12

Gitレポジトリの用意

Gitのリポジトリを置くためのルートになるディレクトリを作成します。Subversionに合わせて、C:\TracLight\projectsの下にGitディレクトリを追加します。

$ cd /d  C:\TracLight\projects
$ mkdir git

この下にプロジェクトごとのディレクトリを作成します。SampleProjectであれば、以下のようなパスになります。

C:\TracLight\projects\git\SampleProject

サーバー上で公開するリポジトリを作成します。

Git Bashで先ほど作成した、プロジェクトのディレクトリに移動し、リポジトリを作成します。このとき忘れずにupdate-server-infoコマンドを実行して、リポジトリに公開用の設定を追加します。

$ git init --bare
$ git update-server-info

そして、この作業で作成されたconfigファイルにをエディタで開いて、以下の内容を追加します。この設定はhttp経由でのpushを可能にするための設定です。

[http]
receivepack = true

 TracでGitのリポジトリを公開する

TracでGitにリポジトリを公開できるように、プロジェクトのtrac.iniを編集します。trac.iniはSampleProjectであれば、 C:\TracLight\projects\trac\SampleProject\confディレクトリに存在しています。

以下の内容をtrac.iniの各セクションに追加します。


[trac]
repository_type = git
repository_dir = C:\TracLight\projects\git\SampleProject
repository_sync_per_request = (default)

[git]
git_bin = C:\Git\bin\git
git_fs_encoding = utf8

[components]
tracext.git.* = enabled

以上の設定ができたら、TracからGitのレポジトリにアクセスできることを確認します。(最初レポジとに何もファイルが無いとHEADに何も無いという内容のエラーが出ますが、それはリポジトリにアクセスしてHEADに何も無いとエラーを出していることになるのでOKです。)

Gitのhttpでの公開

Trac LightningではSubversionのリポジトリをWeb Dav形式で公開しています。Gitはsshでの運用が多いと思いますが、Windowsには標準でsshdが無く、sshを使用することも一般的ではありません。またgit-daemonも1.7.4以降のmsysGit付属のものが動くようにはなったものの、サービスとして動かすのはちょっと面倒ですし、Trac LightningでせっかくApatchがインストールされるのですから、そちらにホストさせた方が良いでしょう。ただし、やはりこれも面倒です。

C:\TracLight\CollabNetSVN\httpd\conf に以下を追加します。TracLightningのユーザー管理で設定したダイジェスト認証を使うように設定しています。


SetEnv GIT_PROJECT_ROOT "C:\TracLight\projects\git"
SetEnv GIT_HTTP_EXPORT_ALL

ScriptAlias /git/ "C:\Git\libexec\git-core\git-http-backend.exe/"
SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER

  Options +ExecCGI
  AuthType Digest
  AuthName trac
  AuthUserFile "C:\TracLight\projects\trac.htdigest"
  Require valid-user
  Allow from all


設定を更新したら、サービスマネージャーでTrac Lightningのサービスを再起動します。

こうすることで、以下のようにリポジトリにアクセスできるようになるはずです。

$ git clone http://localhost/git/SampleProject

One thought on “Trac LightningとGitを組み合わせる”

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください