MacにNetBeansでMercurialその4 - 公開リポジトリ作成

そんな訳で、公開リポジトリを作成してみたいと思います。上手く作成できるとこんな感じになるらしいです。

SubversionWebDAVのデフォルトサイトよりは多少色気があるような無いような、ちょっとsourceforgeっぽいようななんなような。とりあえず、作成してみたいと思います。本当は上記サイトにあるように公開ディレクトリを作成してその中で個々のリポジトリを公開する方式をとりたかったのですが、なんだかCGIが上手く動かなかったのでとりあえず簡単そうなリポジトリを直接公開する方式を試してみることにします。

  • 公開用リポジトリ作成
    • とりあえずNetBeans上で「test」という名のJavaアプリケーションプロジェクトを作成
    • 以下のようにコピー
$ mkdir ~/hgrepository/
$ cp -pR ~/NetBeansProjects/test/ ~/hgrepository/test/
$ cd ~/hgrepository/test/
$ hg init
$ hg add
$ hg commit -u admin -m "test added"
$ cat ~/hgrepository/test/hgweb.py 
import os
os.environ["HGENCODING"] = "UTF-8"

from mercurial.hgweb.hgweb_mod import hgweb
from mercurial.hgweb.request import wsgiapplication
import mercurial.hgweb.wsgicgi as wsgicgi

def make_web_app():
    return hgweb("/Users/bachi_mk2/hgrepository/test", "Test Repository")

wsgicgi.launch(wsgiapplication(make_web_app))
  • 公開用Webサーバ起動
    • こんな感じ
$ hg serve


なんとなく起動したので、NetBeansからチェックアウト(クローン)してみる。

  • メニューバーから、「バージョン→Mercurial→他をクローン」を選択
  • リポジトリURLに「http://localhost:8000/hgweb.py」を入力して「次へ」をクリック
  • デフォルトのプッシュパスとプルパスはそのままで「次へ」をクリック
  • クローン名は「test」と入力して「完了」をクリック

・・・見事に失敗。曰く、

abort: unknown encoding: X-MAC-JAPANESE, please check your locale settings

やっぱりX-MAC-JAPANESEか・・・

普通は、環境変数「HGENCODING」に「utf-8」とか設定すると上手く行くらしいんだけど、どうもMacだとそうでも無いらしいというブログを発見。

/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/me
rcurial/util.py

の、

_encoding = os.environ.get("HGENCODING")

の部分を、

_encoding = 'utf-8'

とハードコーディングする裏技に出ねばならないらしい。すると、見事クローンに成功したらしいので、「プロジェクトを開く」をクリック。

色々変更したりコミットしたりしてみる。

相変わらず使い方が分からなかったり・・・