Mercurialにはhgweb.cgiを使ってhttpでリポジトリを閲覧できる機能があります。
デフォルトのテーマがイマイチなので他テーマがないか調べてみるといくつかあったので紹介します。
テーマの種類と取得
下記サイトにあったテーマを1つずつ検証してみました。
AvailableThemes - Mercurial
paper
デフォルトテーマ。Mercurialに含まれる。
coal
Mercurialに含まれる。
monoblue
Mercurialに含まれる。
gitweb
Mercurialに含まれる。
mercurialweb
別途取得する。
hg clone http://hgweb.boddie.org.uk/MercurialWebTheme
seaweed
別途取得する。動作せず。
hg clone https://bitbucket.org/binarymutant/themes/src/tip/Mercurial/seaweed
gitweb_sonic
別途取得する。動作せず。
markdown
別途取得する。
hg clone https://bitbucket.org/celdredge/hgext.markdown
個人的には「mercurialweb」が好みです。
テーマの配置
テーマを適用するには、Pythonのパッケージディレクトリ配下(デフォルト)か任意の場所に展開します。
テーマの場所によって設定方法が異なります。
Pythonパッケージディレクトリに配置する
使用するPythonの「site-package」ディレクトリを探し、その中のMercurialのテンプレートディレクトリを探します。
/usr/local/lib/python2.7/site-packages/mercurial/templates
取得したテーマにある「tmpl」ファイルを含んだディレクトリを上記パスにコピーします。
同ディレクトリ内に「static」ディレクトリがある場合、コピー後削除します。
# mercurialwebの例 cp -R /tmp/MercurialWebTheme/themes/mercurialweb /usr/local/lib/python2.7/site-packages/mercurial/templates
同テーマにある「static」ディレクトリ内のファイルをPythonのテンプレートディレクトリにコピーします。
jsが含まれていることがあるのでそれはコピーしないようにします。
# mercurialwebの例 cp -R /tmp/MercurialWebTheme/themes/mercurialweb/static/* /usr/local/lib/python2.7/site-packages/mercurial/templates/static
任意の場所に配置する
使用するファイルは「tmpl」を含んだディレクトリと「static」ディレクトリです。
それ以外は削除しても問題ありません。
「tmpl」ファイルと同じ場所に「static」ディレクトリを移動します。
テーマの設定
ログインユーザーのホームディレクトリに「.hgrc」というファイルが存在するか確認します。
なければ新規で作成します。
vi ~/.hgrc
設定はiniファイル形式です。
テーマをPythonのパッケージディレクトリ配下(デフォルト)に配置した場合「style」にテーマ名、任意の場所に配置した場合「templates」にテーマのパスを指定します。
[web] # テーマ名(テーマがデフォルトパスにあるとき) style = mercurialweb # テンプレートパス(テーマが任意のパスにあるとき) templates = /var/mercurial/templates/mercurialweb
テーマを変更した場合、ブラウザのキャッシュをクリアして反映されたか確認します。