シンタックスハイライトと、ツリー表示のタメーのhgwebをsakura VPSにインスコする
BTSとしてのredmineの使い心地は、想像以上のものでsqlite3を使ってるとバックアップもサーバーの移動も至極簡単。
ただ、リポジトリーにアクセスするのにsshだとチョットめんどくさいので、httpでやりとり出来るようにしておきたい。hgには、hgwebがあるので複数リポジトリも一回の設定で一括で公開してくれる。おまけで、aptでインスコされるredmine0.9では、Pythonをシンタックスハイライトしてくれないけど、hgwebではpygmentsで対応しているフォーマットはハイライトしてくれるし、branchやtagも見ることが出来る。一石三鳥なり。
リポジトリーの設定など
リポジトリ:/var/repos 下にシンボリックリンクを配置する
リポジトリ設定:/var/repos直下
リポジトリURL:hg.hoge.com/リポジトリ名
サイト設定:hg.hoge.com で公開
リポジトリの設定ファイル
フォルダとファイルの作成と、パーミッションの設定
sudo -s mkdir /var/repos cd /var/repos touch .config touch.hgrc touch hgweb.cgi chown www-data:www-data .config .hgrc hgweb.cgi chmod +x hgweb.cgi
各種ファイルの中身
.config
[collections] /var/repos = /var/repos
.hgrc
[web] push_ssl = false allow_push = * style = monoblue pygments_style = native [extensions] hgext.highlight=
hgweb.cgi
#!/usr/bin/env python import os config = "/var/repos/.config" os.environ['SCRIPT_NAME'] = '' os.environ["HGENCODING"] = "UTF-8" os.environ["HGRCPATH"] = "/var/repos/.hgrc" from mercurial import demandimport; demandimport.enable() from mercurial.hgweb import hgweb, wsgicgi application = hgweb(config) wsgicgi.launch(application)
Apache関係の設定
リポジトリのパスをURLに反映させるためにmod_rewriteをenable
sudo -s a2enmod rewrite
sitesファイルの作成とBasic認証用のファイルを作成する
sudo -s cd /etc/apache2/sites-avalable touch hg.hoge.com htpasswd -c /var/repos/.htpasswd atusi ##パスワードを入力する ## chown www-data:www-data /var/repos/.htpasswd
hg.hoge.com
<VirtualHost *:80> ServerName hg.hoge.com ServerAdmin hg-admin@hoge.com RewriteEngine on RewriteRule (.*) /var/repos/hgweb.cgi/$1 DocumentRoot /var/repos <Directory "/var/repos/"> Order allow,deny Allow from all AllowOverride All Options ExecCGI AddHandler cgi-script .cgi AuthType Basic AuthName "Mercurial repositories" AuthUserFile /var/repos/.htpasswd <LimitExcept GET> Require valid-user </LimitExcept> </Directory> </VirtualHost>
シンタックスハイライト出来るようにPygmentsをインスコ
sudo -s easy_install pygments