hgrc tips #mercurialjp

このエントリはMercurial Advent Calendar 2012の 1日目です。前回*1の反省を踏まえ、今回は軽いネタから、hgrcのtipsについて話したいと思います。

hgrcのマニュアルの日本語訳をwebから参照したい

mercurialのマニュアルはほぼ100%日本語化されています。 次のURLからhgrcの日本語訳が参照できます。

ちなみに、hgrcだけでは無くmercurialのマニュアルも参照できます。

リポジトリ固有の設定をしたい

リポジトリ毎にhgrcの設定を変更したいことがあると思います。たとえば次の様な場合。

  • コミットのユーザ名を変更したい
  • 認証に利用するID/パスワード、鍵の設定を行いたい

これらはリポジトリ毎に用意されている次のhgrcに設定することで実現できます。 *2

<リポジトリ>/.hg/hgrc

.hgrcから別のhgrcをincludeする

hgrcでは次の形式で別ファイルのを読み込むことが出来ます。

%include <FILE>

たとえば、ホスト固有の設定を読みたい場合は、以下の記述で行えます。 *3

%include ~/.hgrc.d/$HOST.rc

$HOSTなどの環境変数は展開されるようになっています。

clone, pull, push, incoming, outgoing等で出力されるSSLの警告を抑制したい。

httpsのurlのリポジトリにアクセスすると、次の様な警告が出力されると思います。

% hg push
https://bitbucket.org/mercurialjp/mercurial-users.jp への反映中
警告: bitbucket.org の証明書 (fingerprint は 24:9c:45:8b:9c:aa:ba:55:4e:01:6d:58:ff:e4:28:7d:2a:14:ae:3b) 検証を省略(設定ファイルの hostfingerprints ないし web.cacerts 設定を確認してください)
変更点を探索中
HTTP 認証を要求しました
認証領域: Bitbucket.org HTTP
ユーザ: troter
パスワード:
警告: bitbucket.org の証明書 (fingerprint は 24:9c:45:8b:9c:aa:ba:55:4e:01:6d:58:ff:e4:28:7d:2a:14:ae:3b) 検証を省略(設定ファイルの hostfingerprints ないし web.cacerts 設定を確認してください)
連携先: adding changesets
連携先: adding manifests
連携先: adding file changes
連携先: added 1 changesets with 2 changes to 2 files
連携先: bb/acl: troter is allowed. accepted payload.
警告: bitbucket.org の証明書 (fingerprint は 24:9c:45:8b:9c:aa:ba:55:4e:01:6d:58:ff:e4:28:7d:2a:14:ae:3b) 検証を省略(設定ファイルの hostfingerprints ないし web.cacerts 設定を確認してください)

この警告はhgrcにつぎの記述をすることで、抑制することができます。

[hostfingerprints]
bitbucket.org = 24:9c:45:8b:9c:aa:ba:55:4e:01:6d:58:ff:e4:28:7d:2a:14:ae:3b

ホスト名、フィンガープリントの値は警告として出力されている物を利用して下さい。

まとめ

hgrcでよく質問される問題と解決方法を紹介しました。

これ以外にもhgrcで設定出来る項目はたくさんあります。何か不便だな。。 と思ったらマニュアルも参照したり、疑問を#mercurialjpでつぶやいて下さい。

次は@terapyonさんのBitbucket関連のお話です。よろしくお願いします。

*1:Mercurial Advent Calendar 2011

*2:hg init でリポジトリを作成した場合はファイルが存在しないので作成して下さい。

*3:hgrc.5.htmlで紹介されています