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_USEROptions +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
コメント
[…] Apacheを使えばGit Proとか読みながら普通にHTTP/HTTPSでGitのリポジトリにHTTP経由でアクセスできるようになりますが、ここはWindowsなのでぜひともIISを使いたいところです。 […]