Mercurial の設定

posted by Steve Losh on September 30, 2009

Mercurial の動作を変えるには、設定ファイルをいくつか利用します。内容はよくあるテキストファイルです。 それぞれのファイルを見て、その仕組みを確認しましょう。

設定ファイルの構造

Mercurial の設定ファイルはセクションで分かれており、 各セクションには項目がいくつかあります。例えば:

[ui]
username = Steve Losh <steve@stevelosh.com>
editor = vim

[alias]
killitwithfire = revert --no-backup --all

この見本では、 [ui][alias] という 2 つのセクションがあります。 [ui] セクションには項目が 2 つあり、 [alias] セクションは 1 項目です。 項目の名前はイコールの左側に、値は右側に書きます。

設定ファイルはどんなテキストエディタで編集してもかまいません。

設定ファイルの影響範囲

Mercurial は実行時に複数ヶ所から設定ファイルを探し、 見つかった 全て のファイルの設定を利用します。 「限定的」な設定ファイルの内容が「全体的」なファイルの設定を上書きします。 「限定的」と「全体的」の意味はこれから説明します。

「インストール全体」、「システム全体」の設定ファイル

最も「全体的」な設定ファイルです。 このファイルで設定した内容は全ユーザーの全ディレクトリに影響します。

マルチユーザーシステムを管理する場合を除き、このファイルを使う機会はあまりありません。 差し当たってこのファイルは無視します。詳しく知りたい場合は man ページ を調べてください。

「ユーザー個人」の設定ファイル

ユーザーはそれぞれ自分専用の Mercurial 設定ファイルを利用できます。 このファイルは、インストール全体あるいはシステム全体の設定ファイルより「限定的」です。 また、これが最もよく使う設定ファイルです。

UNIX 、 Linux 、 OS X 上では、個人用の設定ファイルを $HOME/.hgrc (別名 ~/.hgrc) へ配置します。

Windows 上では、以下のいずれかです (適当な場所を選んでファイルを作ってください):

%HOME%\Mercurial.ini
%HOME%\.hgrc
%USERPROFILE%\Mercurial.ini
%USERPROFILE%\.hgrc

このファイルで設定した内容は、インストール全体あるいはシステム全体の設定ファイル上の 同じセクションかつ同じ項目名の設定値を上書きします。

このファイルが、ユーザーとして自分専用の設定を書く場所です。 例えば:

[ui]
username = Your Name <your@email.com>
editor = your_favorite_editor_command

[extensions]
... 自分が使いたいエクステンションを ...

[alias]
... 自分が使いやすいようにエイリアスを ...

「リポジトリ専用」の設定ファイル

これが最も「限定的」な設定ファイルで、 ここで設定した内容はそのリポジトリ内で実行したコマンドにしか影響しません。

リポジトリ専用の設定ファイルは必ず [repository-path]/.hg/hgrc へ配置します。 hgrc の前に ドットが無い ことに注意してね。

たった一つのリポジトリ限定で設定を変えたいなんてことがあるでしょうか? よくある例は、あるリポジトリにコミットする時に、 いつもと違うメールアドレスを使いたいという場合です。

ユーザー個人設定ファイルでこのようにしてあるとして:

[ui]
username = Your Name <you@personal.com>

あるリポジトリでは仕事用のメールアドレスを使いたい場合は、そのリポジトリの [repository-path]/.hg/hgrc ファイルにこのような行を追加すると良いでしょう:

[ui]
username = Your Name <you@work.com>

これで、このリポジトリへコミットする時は仕事用のメールアドレスが使われます。 リポジトリ限定の設定ファイルはユーザー個人の設定ファイルより限定的なため、 内容を上書きするからです。

詳しくは

この tip では、設定ファイルの在り処と書き方だけを説明しました。 hgrc の man ページ に豊富な情報がありますので、詳しくはそちらを参照してください。

Mercurial を思い通りに動作させるために、設定方法を知ろう。