2008年2月11日月曜日

Mercurialを使う

NetBeansのソース管理が完全にMercurialへ移行したということで、Mercurialを使って最新のソースを取得してみます
MercurialはPythonで作られていますので、まずPythonがインストールされているかを確認します

$ python -V
Python 2.5.1

Mercurialは2.3以上のPythonが必要とされているとのことですが、条件はクリアされているようです
次にMercurialをインストールします

$ sudo port install mercurial
$ hg --version
Mercurial Distributed SCM (version 0.9.5)

Copyright (C) 2005-2007 Matt Mackall and others
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

これでこのままコマンドラインにて最新ソースを取得できるのですが、せっかくですのでNetBeansのプラグインを利用してみようかと思います

メニューの「ツール」から「プラグイン」とクリックし、表示されたプラグインウィンドウの「使用可能なプラグイン」項目から「Mercurial」をチェックしてインストールします

インストール後、「バージョン管理」に「Mercurial」という項目が追加されています
このときMercurialのバージョンが0.9.5以降だと以下のようなメッセージが表示されます

とりあえずは気にせずに「はい」を選択します
(Wikiでは0.95の使用を推奨しているのですが…)

「Mercurial」のメニュー中から「Clone Other...」を選択します(初期状態ではこのメニュー以外は非アクティブかと思いますが)
選択するとリポジトリを設定するウィンドウが表示されます

"Repository URL"の項目に"http://hg.netbeans.org/main/"と登録します
次にローカルディレクトリを設定します

Mac特有の問題のようですが、ここでこのまま実行すると「abort: unknown encoding: X-MAC-JAPANESE, please check your locale settings」というエラーが発生し、うまくコピーされず終了します
いろいろ調べて、環境変数に"HGENCODING"などを設定するも改善されず…
取り敢えずは"~/.hgrc"に下記のように追加することで上記エラーがでなくなりました
$ vi ~/.hgrc

[ui]
username = hoge

[defaults]
add = --encoding=utf-8
clone = --encoding=utf-8
commit = --encoding=utf-8
init = --encoding=utf-8
pull = --encoding=utf-8
push = --encoding=utf-8
remove = --encoding=utf-8
revert = --encoding=utf-8
update = --encoding=utf-8

[extensions]

cloneに必要なものはclone項のみですが、その他も今後を考えて一応書いています
(別なもっとスマートな方法があればそちらに切り替えます)

ローカルコピーに時間がかかりますが、終了すると指定のディレクトリにソースが展開されています
以降ビルドなどはココを参照下さい

【08/09/14 追記】
Macportsからインストールした場合、Mercurialサポートのマージが正しく動かないようです
公式パッケージの利用、または環境変数を設定することで対応可能です
詳細はコチラを参照ください

0 件のコメント: