===============
hglight
===============

hglightとは？
------------------------------------

hglight とは、TracLightning上で手軽(lightweight)にmercurial(hg)を利用するためのスクリプトセットです。 hglight を使用することで、以下の機能を簡単に利用できるようになります。

- ソースコード管理に mercurial を使用したtracプロジェクトの作成
- hgweb を利用してhttp経由での clone/push
- commitフックの利用
- リポジトリのバックアップ

Tracightning上でmercurialが容易に利用できるようになります。

インストール
------------------------------------

解凍してその中のsetup.batを実行してください。途中、MinGWのインストーラが起動しますが、デフォルト状態のままインストールを実行してください。TracLightningが起動している状態ならば、TracLightningを再起動してインストールは完了です。

インストール時に、mercurialをインストールするので、もし事前に入っている場合はアンインストールをしておいてください。
setup.batは単純なバッチファイルですので、事前に一読し、何をやっているのかを確認した上で実行することを強くお勧めします。

インストールに関する補足
+++++++++++++++++++++++++++

基本的にhglightは、必要なものをダウンロードします。このため、回線状況によってはインストールに時間がかかる場合あがあります。

Proxyを利用してインターネットに接続する場合、環境変数HTTP_PROXYあたりを設定するとうまくいくかもしれません(試してない)。利用しているのは、ファイルのダウンロードには、urllib、easy_install、hg cloneあたりを利用してます。
あ、svnも使ってるので、そちらの設定も必要かも。

hg対応プロジェクトの作成
------------------------------------

mercurialを利用したtracプロジェクトを作成するには、create-hg-project.batを利用します。引数にプロジェクト名を設定することで、hgのリポジトリとTracのプロジェクトを作成します。使用例を以下に示します。

> create-hg-project.bat MyProject

tracのプロジェクトは、%TRAC_LIGHT_HOME%\projects\tracに、hgのリポジトリは%TRAC_LIGHT_HOME%\projects\hgに作成されます。 

hgリポジトリのURL
------------------------------------

`http://<ホスト名>/trac` にアクセスすると、利用可能なプロジェクト一覧が表示されます。hgリポジトリは、 `http://<ホスト名>/hg/<プロジェクト名>` でアクセスすることができます。`http://<ホスト名>/hg` にアクセスすることで、hgリポジトリの一覧が参照できます。

ユーザーアカウント
------------------------------------

TracLightningで使用しているユーザーアカウントが利用できます。

incomingフック
------------------------------------

hgリポジトリにpushされた後に実行したいコマンドがあれば、%TRAC_LIGHT_HOME%\projects\hg\<プロジェクト名>\.hg 以下にある、hg-incoming-hook.bat に追記すると、pushされる毎に実行されます。

バックアップ
------------------------------------

プログラムメニューの「Trac」→「バックアップ」で、hgのリポジトリもあわせてバックアップされます。

バージョンアップについて
------------------------------------

一旦hglightをインストールしたら、TracLightningをバージョンアップしても基本的にそのまま利用できます。httpd.confを上書きする設定でバージョンアップする場合は、バージョンアップ前のhttpd.confを控えておき、hg関連部分を後で追記するようにすると良いと思います。

設定について
------------------------------------

各リポジトリ個別の設定は各リポジトリの.ht/hgrcに記述してください。全てのリポジトリに適用するような
設定は、TracLightningを実行するユーザーの%USERPROFILE%\Mercurial.iniに記述してください。

設定例その1 - hgwebのスタイルを変更する
++++++++++++++++++++++++++++++++++++++++++++
全てのリポジトリのスタイルを一括して変更する場合には%USERPROFILE%\Mercurial.iniに以下のように記述します。

[web]
style = monoblue

リポジトリ一覧画面のスタイルは、%USERPROFILE%\Mercurial.iniで指定したものが利用されます。

利用しているもののライセンス
------------------------------------
hglight は以下のソフトウェアをweb上からダウンロードして利用するようになっています。

===================== ================================
プロダクト            ライセンス
===================== ================================
Mercurial_            GNU version 2
MinGW_                http://www.mingw.org/license
TracMercurial_        GPL
modpython_gateway.py_ public domain
===================== ================================

また、hgweb/hgwebdir.append は、John Wiegleyの記事( http://www.newartisans.com/2007/10/serving-up-mercurial-using-mod-python.html )を参考にしたものです。利用に際し「public domainで使っていいよ」と言ってくれたJohnに感謝します。

参考記事
------------------------------------

.. _Mercurial: http://mercurial.selenic.com/wiki/
.. _MinGW: http://www.mingw.org/
.. _TracMercurial: http://trac.edgewall.org/wiki/TracMercurial
.. _modpython_gateway.py: http://www.aminus.net/browser

