それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

hgwebの作り方。自分だけのレポジトリを使って楽をする。

gitもいいけどhgもかなり良いです。最近のhg は文字化け知らずですね。

hgweb で自分だけのhgハブサイトを作る。

(aa807be00ee84c05b6eaf6df83e136d0)


githubも良いんだけど、公開・非公開の管理が面倒だし。あれはgit cloneするためにあるようなもので不便。
自分で使うにはhgwebは超便利。hg であるていどたまったらgithubに出すのが理想。

hgweb のインストールと設定をする。

mercurialを入れる

これはインストール済前提で。

もしmercurialをeasy_installから入れるときは
sudo aptitude install python-setuptools #easy_install のインストール
sudo easy_install -U mercurial

hgwebのソースコードの場所を探す。hgをインストール済なら、どこかにあるはず。

hgwebを探す

sudo updatedb
sudo locate hgweb | grep cgi
/usr/share/doc/mercurial-common/examples/hgweb.fcgi
/usr/share/doc/mercurial-common/examples/hgweb.cgi
見つかったhgweb.cgi を動作させたいディレクトリにコピー
cp /usr/share/doc/mercurial-common/examples/hgweb.cgi /var/www/repos 
cp /usr/share/doc/mercurial-common/examples/hgweb.fcgi /var/www/repos # fcgiを使う場合

/var/www/reposで公開する。

/var/www/reposをhgwebのディレクトリにする。このディレクトリでhgwebを使う。

.htaccess
#起動設定
Options +ExecCGIAddHandler cgi-script .cgi
#AddHandler fcgid-script .fcgi #fcgi用
Order Allow,Deny
Allow from all

DirectoryIndex ./hgweb.cgi
#DirectoryIndex ./hgweb.fcgi # fcgi用

必要なら、httpd.confで /var/www/reposに allow override all または、execcgiをつけておく

fcgiを動かすときは

cgiはたいてい入ってるけど、fcgidはインストールが必要

sudo a2enmode fcgid
sudo service apache2 reload

hgweb.cgi の設定。(fcgiも同じ)

  5 # Path to repo or hgweb config to serve (see 'hg help hgweb') 
  6 config = "/var/www/repos/hgweb.config"  # 設定ファイルのパスを書く
  7

fcgiの場合は、hgweb.fcgiが編集対象

hgweb.config

先ほど指定した設定ファイルを編集する

[paths]
trunk = /var/www/repos/*
[web]
encoding = “UTF-8”

* を使うと該当ディレクトリ以下が全部対象になる。

スタイルを変えたい

スタイルを変えて遊ぶことが出来る

[web]
style=coal

各スタイルの見栄えについては、次を参照すると良い。 Logwatch for santa » hgweb の見た目を変更する


もっとスタイルを変えたい。

debianの場合は、次の場所にテンプレートの実体があった。

     locate mercurial | grep templates
     /usr/share/mercurial/templates


easy_install の場合は

/usr/local/lib/python2.6/dist-packages/mercurial-2.0.2-py2.6-linux-i686.egg/mercurial/templates/

にテンプレートファイルがあった。

それぞれ、templatesディレクトリにスタイル一式がある。

もし別のスタイルを作って使うなら、

/path/to/template/${style_name}

${style_name}で名前を決めてスタイルを作る。

これを hgweb.configに書く。

[web]
templates = /path/to/template/
styple = style_name


または、標準templatesのディレクトリで、コピーして、別名で作る。

参考資料:さらに認証するなど

参考資料。本家

HgWebDirStepByStep - Mercurial