hgrc

Mercurial の設定ファイル

Author: Bryan O'Sullivan <bos@serpentine.com>
Organization: Mercurial
Manual section:5
Manual group:Mercurial Manual

Contents

説明

Mercurial では、 挙動を制御するために、 複数の設定ファイルを使用します。

問題対処

設定に関する問題が発生した場合、 hg config --debug を実行することで、 どの設定項目が、 どのファイルで設定されているのかを、 知ることができます。

設定ファイルの記述方法や、 ファイルの配置に関する詳細は、 hg help config.syntax および hg help config.files を参照してください。

ファイル内構造

Mercurial の設定ファイルは、 いわゆる ini ファイル形式で記述されます。 設定ファイルは、 「セクション」から構成され、 各セクションは [セクション名] 形式のヘッダで始まり、 名前 = 値 形式の要素が列挙されます:

[ui]
username = Firstname Lastname <firstname.lastname@example.net>
verbose = True

上記記述はそれぞれ、 ui.username および ui.verbose として参照されます。 詳細は hg help config.syntax を参照してください。

ファイル

Mercurial は複数のファイルから設定情報を読み込みます。 読み込み対象となるファイルは、 事前に存在しませんので、 適切な位置にファイルを作成するのは、 利用者の責任となります:

リポジトリ毎の局所的な設定は <リポジトリ>/.hg/hgrc に記述します。

「ユーザ名」のような、 広範囲で有効な設定は、 以下で記述します:

  • %USERPROFILE%\mercurial.ini (on Windows)
  • $HOME/.hgrc (on Unix, Plan9)

設定ファイルの名前 (パス) は、 Mercurial の稼動環境に依存します。 単一ディレクトリ直下の *.rc ファイルを読み込む場合、 ファイル名のアルファベット順で読み込まれ、 先に読み込んだ設定よりも、 後から読み込んだ設定の方が優先されます。 以下に列挙されるパスにおいて、 複数から設定が読み込まれた場合は、 列挙順の早い方の設定が優先されます。

Unix 環境では、 以下のファイルが読み込まれます:

  • <リポジトリ>/.hg/hgrc (リポジトリ毎設定)
  • $HOME/.hgrc (ユーザ毎設定)
  • <インストール先>/etc/mercurial/hgrc (インストール毎設定)
  • <インストール先>/etc/mercurial/hgrc.d/*.rc (インストール毎設定)
  • /etc/mercurial/hgrc (システム毎設定)
  • /etc/mercurial/hgrc.d/*.rc (システム毎設定)
  • <パッケージ固有>/default.d/*.rc (デフォルト設定)

Windows 環境では、 以下のファイルが読み込まれます:

  • <リポジトリ>/.hg/hgrc (リポジトリ毎設定)
  • %USERPROFILE%\.hgrc (ユーザ毎設定)
  • %USERPROFILE%\Mercurial.ini (ユーザ毎設定)
  • %HOME%\.hgrc (ユーザ毎設定)
  • %HOME%\Mercurial.ini (ユーザ毎設定)
  • HKEY_LOCAL_MACHINE\SOFTWARE\Mercurial (インストール毎設定)
  • <インストール先>\hgrc.d\*.rc (インストール毎設定)
  • <インストール先>\Mercurial.ini (インストール毎設定)
  • <パッケージ固有>/default.d/*.rc (デフォルト設定)

Note

32-bit Python を 64-bit Windows で動作させる場合は、 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Mercurial レジストリキーが使用されます。

Windows 9x 環境では %HOME% の代わりに %APPDATA% を使用します。

Plan9 環境では、 以下のファイルが読み込まれます:

  • <リポジトリ>/.hg/hgrc (リポジトリ毎設定)
  • $home/lib/hgrc (ユーザ毎設定)
  • <インストール先>/lib/mercurial/hgrc (インストール毎設定)
  • <インストール先>/lib/mercurial/hgrc.d/*.rc (インストール毎設定)
  • /lib/mercurial/hgrc (システム毎設定)
  • /lib/mercurial/hgrc.d/*.rc (システム毎設定)
  • <パッケージ固有>/default.d/*.rc (デフォルト設定)

リポジトリ毎設定は、 対象リポジトリに関する実行でのみ適用されます。 このファイルは、 履歴管理の対象外であり、 hg clone でも複製されません。 ここでの設定は、 他の全ての設定に優先します。

Plan9 や Unix 環境では、 設定ファイルの所有者やグループが、 信頼できるユーザやグループでない場合、 設定内容の大半が無視されます。 詳細は hg help config.trusted を参照してください。

ユーザ毎設定は、 Mercurial コマンドを実行するユーザ毎の設定です。 ここでの設定は、 当該ユーザの Mercurial コマンド実行全てに適用されます。 ユーザ毎設定は、システム毎/インストール毎の設定に優先します。

インストール毎設定は、 Mercurial のインストール先から読み込まれます。 実行される hg コマンド格納先の親ディレクトリを <インストール先> とみなします。

例えば /shared/tools/bin/hg が実行される場合、 /shared/tools/etc/mercurial/hgrc から読み込まれます。 ここでの設定は、 実行ユーザ/対象リポジトリに関わらず適用されます。

インストール毎設定は、 Mercurial の実行環境に対する設定です。 ここでの設定は、 実行ユーザ/対象リポジトリに関わらず適用されます。 レジストリキーは PATH 環境変数的な値を保持し、 値の各要素は、 ファイル Mercurial.ini を参照するか、 *.rc ファイルを格納するディレクトリでなければなりません。 1つ以上の設定ファイルが検出されるまで、 Mercurial は記述順序通りに、 各位置のファイル所在確認を行います。

システム毎設定は、 Mercurial を実行するシステムに対する設定です。 ここでの設定は、 実行ユーザ/対象リポジトリに関わらず適用されます。 システム毎設定は、 インストール毎設定より優先されます。

mercurial のリリースには、 いくつかのデフォルト設定ファイルが含まれます。 mercurial のインストールやバージョンアップは、 これらを上書きします。 設定変更の際には、デフォルト設定以外の設定ファイルを編集してください。 開発元が提供するデフォルト設定は、 現状ではマージツール設定のみですが、 パッケージ作成者によって、 他の設定が追加されている可能性があります。 (※ 訳注: デフォルト設定ファイルの格納先は、 パッケージ形態依存なので、 格納先説明では「パッケージ固有」と表記しています)

文法

設定ファイルは、 「セクション」から構成され、 各セクションは [セクション名] 形式のヘッダで始まり、 名前 = 値 形式の要素 (『名前』は『設定キー』とも呼ばれます) が列挙されます:

[spam]
eggs=ham
green=
   eggs

設定記述は一行一エントリです。 但し、 後続行が字下げされている場合は、 エントリ記述が継続しているものとみなされます。 値記述の先頭の (半角) 空白文字は除外されます。 空行は無視されます。 # または ; で始まる行は、 コメント行として無視されます。

同一設定キーに対して、 複数回の記述が可能ですが、 Mercurial は最後に設定された値を使用します。 例えば:

[spam]
eggs=large
ham=serrano
eggs=small

上記記述の場合、 設定キー eggs の値として採用されるのは small です。

同一セクションを複数回記述することも可能です。 複数回の記述場所は、 同一ファイル中でも、 異なる設定ファイル間でも構いません。 例えば:

[foo]
eggs=large
ham=serrano
eggs=small

[bar]
eggs=ham
green=
   eggs

[foo]
ham=prosciutto
eggs=medium
bread=toasted

上記の設定記述の場合、 foo セクションの eggs, ham および bread 設定キーの値はそれぞれ medium, prosciutto および toasted となります。 各設定キー毎に、 最後に設定された値が有効になるのです。

同一設定キーに対して、 異なるファイルでそれぞれ設定が記述された場合、 「最後の設定値」はファイルの読み込み順序に依存します。 先の ファイル セクションでのパスの列挙順が、 より早い方が優先されます。

%include file 形式の記述によって、 当該設定ファイルにおいて file が読み込まれます。 読み込みは再帰的に実施されるため、 読み込み対象ファイルから、 他のファイルを読み込むことも可能です。 ファイル名は、 %include 記述のあるファイルに対して、 相対的なものとみなされます。 file における環境変数や ~user 形式の記述は展開されます。 そのため、 以下のような記述によって:

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

ホスト毎に異なる設定ファイルを読み込む事が可能です。

当該セクションにおいて、 既に name が設定されている場合、 %unset name 形式の記述によって、 設定を破棄する事が可能です。

設定する値には、 自由形式の文字列、 文字列の列挙、または真偽値の、 いずれでも指定可能です。 真偽値の設定では、 "1"、 "yes"、 "true" または "on" のいずれもが真値、 "0"、 "no"、 "false" または "off" のいずれもが偽値とみなされます。 (文字大小は無視されます)

列挙における各値は、 空白文字またはコンマで区切られますが、 二重引用符 (") で囲まれた部位は分割されません:

allow_read = "John Doe, PhD", brian, betty

バックスラッシュを前に付ける事で、 引用符自体を記述する事が可能です。 語の冒頭位置以外の引用符は、 引用符とはみなされません。 (例: foo"bar bazfoo"barbaz の列挙とみなされます)

セクション

Mercurial の設定ファイルで記述可能な各セクション毎の、 用途、 設定キー、 および設定可能な値について以下で述べます。

alias

コマンドの別名 (エイリアス) 定義。

別名定義は、 他のコマンド (または定義済み別名) や、 付加的な引数を使って、 自分独自のコマンドを作成可能です。 別名定義における $1$2 のような位置指定引数は、 実行前に Mercurial によって置換されます。 別名定義中で $N 形式による参照の無かった全ての引数は、 実行されるコマンドの末尾に付与されます。

別名定義では、 以下の形式の行を記述します:

<別名> = <コマンド> [<引数>]...

例えば、 以下の定義では:

latest = log --limit 5

最新の 5 リビジョンのみを表示する latest コマンドが定義されます。 定義済みの別名を用いて、 違う別名を定義することも可能です:

stable5 = latest -b stable

Note

既存コマンドと同名の別名定義は、 既存コマンドを上書きします。 このような別名定義は、 大概悲惨な結果を招きます!

感嘆符 (!) から始まる別名定義は、 シェル別名を意味します。 シェル別名はシェルによって解釈され、 任意のコマンド実行が可能です。 例えば以下の定義によって:

echo = !echo $@

hg echo foo 実行は、 端末に foo を表示します。 より実践的な例としては:

purge = !$HG status --no-status --unknown -0 re: | xargs -0 rm

hg purge 実行は、 作業領域中の全ての未知のファイルを、 purge エクステンションと同じ作法で削除します。

別名定義での $1$2 等の位置指定引数は、 別名コマンド実行の際に、 コマンド行で指定された、 対応する引数で置換されます。 対応引数が無い場合、 引数不足で処理が中断されます。 $0 はコマンド別名そのもの、$@ は全引数を空白区切りしたもので、それぞれ置換されます。 引用符で囲まれた "$@" は、 引数が個別に引用符で囲まれる点が $@ と異なります。 これら引数の置換は、 シェルによるコマンド行解釈よりも、 前に実施されます。

シェル別名では、 環境変数 $HG が、 別名コマンドを実行する Mercurial のパスに置換されます。 この仕様は、 先の purge 別名のように、 シェル別名において Mercurial を実行する場合に有用です。 更に、 環境変数 $HG_ARGS は Mercurial への引数に置換されますので、 先述した hg echo foo では、 $HG_ARGSecho foo に置換されます。

Note

いくつかのグローバルオプション (例: -R) の処理は、 シェル別名の解釈前に実施されるため、 シェル別名に対して、 これらを指定することはできません。

annotate

ファイル中の行の由来表示に関する設定。 全ての値が真偽値で、 デフォルト値は False です。 diff コマンドに関連するオプションの詳細は、 hg help config.diff を参照してください。

ignorews
差分検出における空白文字無視の有無。
ignorewsamount
差分検出における空白文字数増減無視の有無。
ignoreblanklines
差分検出における空行増減無視の有無。

auth

HTTP 認証のための認証情報。 本セクションでは、 HTTP サーバへのログインで使用される、 ユーザ名/パスワードを記述します。 HTTP サーバ側において、 ログイン可能ユーザを制御する場合の詳細は、 hg help config.web を参照してください。

設定は以下の形式で記述されます:

<名前>.<引数> = <値>

<名前> は引数群を1つの認証情報エントリに束ねる働きをします。 例えば:

foo.prefix = hg.intevation.de/mercurial
foo.username = foo
foo.password = bar
foo.schemes = http https

bar.prefix = secure.example.org
bar.key = path/to/file.key
bar.cert = path/to/file.cert
bar.schemes = https

利用可能な引数を以下に示します:

prefix
* または URI (scheme 部分の記述は任意)。 最長マッチする prefix 指定を持つ認証情報が使用されます。 (* は全てにマッチし、 マッチ長は 1 とみなされます) prefix 指定が scheme 部分を持たない場合、 scheme 部分を取り除いた URI に対する prefix のマッチングの後で、 (後述する) scheme 引数によるマッチングが行われます。
username
省略可。 認証におけるユーザ名。 本引数の指定が無く、 且つログイン時に basic または digest 認証が要求された場合、 対話的入力が要求されます。 foo.username = $USER 形式の記述では、 環境変数が置換されます。 URI がユーザ名を含む場合、 選択対象となる [auth] のエントリは、 ユーザ名が合致するものか、 ユーザ名が無いものだけです。
password
省略可。 認証におけるパスワード。 本引数の指定が無く、 且つログイン時に basic または digest 認証が要求された場合、 対話的入力が要求されます。
key
省略可能。 PEM 符号化されたクライアント証明書鍵ファイル。 ファイル名指定では、 環境変数の置換が実施されます。
cert
省略可能。 PEM 符号化されたクライアント証明書連鎖ファイル。 ファイル名指定では、 環境変数の置換が実施されます。
schemes
省略可能。 空白で区切った、 認証で使用される URI scheme の一覧。 prefix 引数に scheme が含まれない場合にのみ使用されます。 http および https が指定可能です。 それぞれ static-http および static-https にもマッチします。 (デフォルト値: https)

ログイン時に認証が要求され、 且つ適切な認証情報記述が無い場合、 認証情報に関する対話的入力が要求されます。

committemplate

changeset
文字列: 本セクションでの changeset 設定は、 コミット時に、 エディタで表示されるテキストの、 カスタマイズに使用されます。

既存のテンプレートキーワードの他に、 本セクションでの定義でのみ有効な、 以下のテンプレートキーワードが使用できます:

extramsg
文字列。 追加メッセージ (通常は 'メッセージが空のままならコミットを 中止します。') 実行されるコマンドによって、指定される内容が、 異なる場合があります。 (※ 訳注: MQ 系コマンドで異なる内容になります)

例えば、 以下のような設定記述により、 カスタマイズ未実施の際の表示と、 全く同じ内容の情報が表示されます:

[committemplate]
changeset = {desc}\n\n
   HG: コミットログを入力してください。'HG:' で始まる行は無視されます。
   HG: {extramsg}
   HG: --
   HG: ユーザ: {author}\n{ifeq(p2rev, "-1", "",
  "HG: ブランチのマージ\n")
  }HG: ブランチ '{branch}'\n{if(activebookmark,
  "HG: ブックマーク '{activebookmark}'\n")  }{subrepos %
  "HG: サブリポジトリ {subrepo}\n"           }{file_adds %
  "HG: {file} を追加\n"                      }{file_mods %
  "HG: {file} を変更\n"                      }{file_dels %
  "HG: {file} を削除\n"                      }{if(files, "",
  "HG: ファイル変更なし\n")}

Note

問題のある文字コード (詳細は hg help win32mbcs 参照) を使う場合、 本機能によるカスタマイズは、 表示内容が崩れないように注意が必要です。

例えば、 バックスラッシュ (0x5c) で終了する複数バイト文字が、 ASCII 文字の n を後ろに伴うようなテンプレート定義では、 この2バイトが、 改行文字扱いされてしまいます (先行する複数バイト文字も崩れます)。 (※ 訳注: cp932/Shift-JIS では「ソ」や「能」などが該当します)

カスタマイズ用テンプレートは、 以下のコマンドで利用されます (エディタ起動のために --edit オプションが必要な場合もあります):

changeset の代わりに以下の項目を設定することで、 カスタマイズを、 特定のコマンドに限定したり、 コマンド毎に異なる内容にすることも可能です。

これらのドット区切りの名前は、 階層構造的に扱われます。 例えば changeset.tag.remove の設定は hg tag --remove にのみ影響しますが、 changeset.tag の設定は --remove 指定に関わりなく全ての hg tag 実行に影響します。

コミットメッセージ入力用の、 外部エディタを起動する際には、 項目名冒頭の changeset. を除いたドット区切り名 (例: commit.normal.normal) が、 HGEDITFORM 環境変数に設定されます。

本セクションでは、 changeset 以外の設定項目を、 相互に参照可能です。 例えば、 コミット対象一覧を列挙する以下の設定を {listupfiles} として、 各設定項目間で共有することができます:

[committemplate]
listupfiles = {file_adds %
   "HG: added {file}\n"     }{file_mods %
   "HG: changed {file}\n"   }{file_dels %
   "HG: removed {file}\n"   }{if(files, "",
   "HG: no files changed\n")}

decode/encode

リポジトリ/作業領域間の入出力における、 ファイル変換フィルタの指定。 改行形式の変換に代表される、 ファイルの地域化/正規化に使用されます。

フィルタは、 フィルタコマンドを伴ったフィルタパターンで指定されます。 デフォルトのパターン指定形式は、 作業領域ルートからの相対パスに対して、 パス先頭からのパターン合致で判定する、 ワイルドカード形式 (glob) です。 例えば、 ルート直下の .txt 拡張子のファイルにのみ合致させるパターンは *.txt となります。 作業領域中の .c 拡張子の全ファイルへの合致は、 **.c となります。 それぞれのファイルに適用されるフィルタは、 最初にマッチしたパターンのものだけです。

フィルタコマンドの記述は pipe: または tempfile: で開始可能です。 特に指定が無い場合は、 pipe: 指定相当とみなされます。

pipe: 指定のフィルタコマンドは、 標準入力からデータを読み込み、 変換済みデータを標準出力に書き出さなければなりません。

pipe フィルタ例を以下に示します:

[encode]
# 差分記録の圧縮効果向上のため、コミット時に gzip ファイルを解凍。
# 備考: あくまで例示であり、この方式自体はあまり良い案ではありません
*.gz = pipe: gunzip

[decode]
# 作業領域への取り出しの際に gzip ファイルを再圧縮
# (デフォルトである "pipe:" 指定は省略可能)
*.gz = gzip

tempfile: 指定のフィルタコマンドは、 テンプレート形式で記述します。 INFILE 記述は、 処理対象データが格納された一時ファイルのパスに、 OUTFILE 記述は、 処理結果を格納する (空の) 一時ファイルのパスに、 それぞれ置換されます。

Note

標準的なシェルの I/O リダイレクトが、 予期せぬ結果や、 ファイル内容の破壊に繋がる Windows のような環境では、 tempfile 機構の使用がお勧めです。

Windows (CRLF) と Unix (LF) 環境間における改行形式の変換を行う eol エクステンションは、 内部的にフィルタ機構を使用しています。 改行形式変更には、 eol エクステンションの利用をお勧めします。

defaults

(defaults の使用は非推奨です。 alias を使用してください。)

[defaults] セクションは、 指定コマンドに対する、 デフォルトのオプション/引数指定の記述に使用します。

以下の記述は、 hg log の常時 verbose モード実行と、 hg status の変更ファイル限定表示化の例です:

[defaults]
log = -v
status = -m

alias 定義で上書きされたコマンドでも、 元々のコマンドの方が defaults 定義対象となります。 alias 定義コマンドも defaults 定義対象となります。

diff

差分表示の設定。 unified 以外の全ての設定は真偽値で、 デフォルト値は False です。 annotate コマンドに関連するオプションの詳細は、 hg help config.annotate を参照してください。

git
git 拡張 diff 形式使用の有無。
nobinary
バイナリ差分の出力の抑止 (※ 訳注: hg export も影響を受けます)
nodates
差分ヘッダ部分からの日付情報除外の有無。
noprefix
ファイル名の接頭辞 'a/' と 'b/' の省略 (plain モードでは無視)
showfunc
変更が生じた関数の名前表示の有無。
ignorews
差分検出における空白文字無視の有無。
ignorewsamount
差分検出における空白文字数増減無視の有無。
ignoreblanklines
差分検出における空行増減無視の有無。
unified
差分出力におけるコンテキスト行の行数。

email

電子メールを送信するエクステンション向けの設定。

from
省略可能。 送信するメールの "From" ヘッダと SMTP エンベロープに使用する電子メールアドレス。
to
省略可能。 宛先電子メールアドレスのカンマ区切り。
cc
省略可能。 CC 宛先電子メールアドレスのカンマ区切り。
bcc
省略可能。 BCC 宛先電子メールアドレスのカンマ区切り。
method
省略可能。 電子メールの送信方式。 smtp (デフォルト値) が設定された場合、 直接 SMTP を使用して送信します。 (設定詳細は [smtp] セクション詳細を参照) それ以外の値の場合は、 sendmail と同様に振舞う (-f で送信元を指定、 コマンド行で宛先一覧を指定、 標準入力で送信内容の受け取り) 電子メール送信プログラムとみなします。 sendmail でのメール送信では、 通常は sendmail または /usr/sbin/sendmail と設定すれば十分です。
charsets

省略可能。 宛先において都合の良い文字符号化方式のカンマ区切り。 電子メールのアドレス指定、 ヘッダ群、 およびパッチ 「以外」 のマルチパート部分は、 ローカル符号化方式 ($HGENCODING または ui.fallbackencoding で指定) からの変換に成功した、 「最初の」符号化方式で符号化されます。 変換に失敗した場合、 そのままのデータが送信されます。 (デフォルト値: '')

電子メールの文字符号化方式は以下の順序で確定します:

  1. us-ascii: 設定に関わらず常に最初
  2. email.charsets: ユーザ指定の順序通り
  3. ui.fallbackencoding: email.charsets で指定されていない場合。
  4. $HGENCODING: email.charsets で指定されていない場合。
  5. utf-8: 設定に関わらず常に最後

email セクションの設定例を以下に示します:

[email]
from = Joseph User <joe.user@example.com>
method = /usr/sbin/sendmail
# 西欧圏向けの文字符号化設定
# 最初と最後に確認される us-ascii と utf-8 の記述は省略
charsets = iso-8859-1, iso-8859-15, windows-1252

extensions

Mercurial には、 機能追加のための、 エクステンション機構が備わっています。 個々のエクステンションを有効にするには、 本セクションにおいて、 対応するエントリを記述する必要があります。

エクステンションの実装が、 Python の検索パス上にある場合、 モジュール名に続けて = を記述するだけ (右辺値は不要) です。

それ以外の場合、 任意の名前に続けて = を記述した後ろに、 エクステンションを実装した .py ファイルへのパス (ファイル名含む) を記述してください。

先に読み込まれた設定ファイルにおいて、 有効化済みのエクステンションを、 明示的に無効化したい場合は、 foo = !/ext/path あるいは foo = ! のように、 値の先頭に ! が来るような設定を記述してください。

~/.hgrc 記述例を以下に示します:

[extensions]
# (color エクステンションは Mercurial 同梱のものが読み込まれます)
color =
# (以下のエクステンションは指定のパスから読み込まれます)
myfeature = ~/.hgext/myfeature.py

format

usegeneraldelta

"generaldelta" 形式リポジトリの使用可否。 この形式では、 "revlog" での格納の際に、 任意の対象との差分の記録を許すことで、 データ量の圧縮率を向上させることができます。 ブランチが多い場合に、 この形式の効果が発揮されます。

この形式の利用には Mercurial 1.9 以降が必要です。

特に指定がない場合は有効化されます。

dotencode

"dotencode" 形式リポジトリの使用可否。 この形式では、 特定の環境で問題を生じる ._ (Mac OS X) や空白文字 (Windows) で始まるファイル名の履歴が、 どの環境でも正しく格納できるように、 "fncache" 形式 (本設定の有効化に必須) を拡張します。

この形式の利用には Mercurial 1.7 以降が必要です。

特に指定がない場合は有効化されます。

usefncache

"fncache" 形式リポジトリの使用可否。 この形式では、 長いファイル名や、 特定の OS の予約名 (Windows での "nul") と同名のファイルの履歴が、 どの環境でも正しく格納できるように、 "store" 形式 (本設定の有効化に必須) を拡張します。

この形式の利用には Mercurial 1.1 以降が必要です。

特に指定がない場合は有効化されます。

usestore

"store" 形式リポジトリの使用可否。 この形式では、 管理対象のファイル名が、 文字大小違いでお互いに衝突する場合に、 どの環境でも履歴が正しく格納できるように、 格納形式を拡張します。 本形式を無効化した場合、 異環境との相互運用性を犠牲にする代わりに、 有効化時よりも長いファイル名を、 管理対象にできるようになります。

この形式の利用には Mercurial 0.9.4 以降が必要です。

特に指定がない場合は有効化されます。

graph

ウェブでのグラフ表示設定。 本セクションでは、 グラフの表示要素に対して、 設定を変更できます (例: default ブランチを目立たせる)。

設定は以下の形式で記述されます:

<ブランチ名>.<引数> = <値>

<ブランチ名> は設定変更対象のブランチ名です。例えば:

[graph]
# 幅を2ピクセルに変更
default.width = 2
# 色を赤に変更
default.color = FF0000

利用可能な引数を以下に示します:

width
ブランチにおけるの線幅を、 ピクセル単位で指定。
color
ブランチにおける線の色を、 16進 RGB 表記で指定。

hooks

commit の開始/終了といった様々な処理契機において、 自動実行されるコマンド、または Python 関数。 処理契機名に接尾辞 (suffix) を追加した記述をする事で、 同一処理契機に複数のフックを実行可能です。 先に読み込まれた設定 (例: ホスト毎設定) におけるフック設定は、 別な値を設定するか、 空値の設定により、 上書き可能です。 フック名の前に priority. 接頭辞を追加した設定値を新たに定義し、 値を設定することで、 フック実行の優先度を設定できます。 デフォルトの優先度設定値は 0 です。 (※ 訳注: 優先度値が大きいフックの方が先に実行されます)

.hg/hgrc 設定例を以下に示します:

[hooks]
# 履歴の取り込み毎に作業領域を更新
changegroup.update = hg update
# ホスト毎設定の無効化
incoming =

incoming.email = /my/email/hook
incoming.autobuild = /my/build/hook
# 他の incoming に先立って autobuild フックを実行
priority.incoming.autobuild = 1

殆どのフックは、 有用な付加情報を持つ環境変数設定と共に実行されます。 以下に示すフック群に渡される環境変数は $HG_foo 形式の名前を持ちます。

changegroup
push、 pull、 unbundle によるリビジョン群の追加完了時に実行されます。 新規追加リビジョン群の最初の ID が $HG_NODE に、 最後の ID が $HG_NODE_LAST に設定されます。 取り込み元 URL が $HG_URL に設定されます。 (※ 訳注: 複数リビジョン一括追加時の changegroup フック実行は1回ですが、 incoming フックはリビジョン毎に実行されます)
commit
手元のリポジトリにおける新規リビジョン作成完了時に実行されます。 新規作成リビジョンの ID が $HG_NODE に、親リビジョンの ID が $HG_PARENT1 および $HG_PARENT2 に設定されます。
incoming
push、 pull、 unbundle によるリビジョンの追加完了時に実行されます。 新規追加リビジョンの最初の ID が $HG_NODE に、 追加リビジョンの取り込み元 URL が $HG_URL に設定されます。 (※ 訳注: 複数リビジョン一括追加時の changegroup フック実行は1回ですが、 incoming フックはリビジョン毎に実行されます)
outgoing
他リポジトリへの変更反映完了後に実行されます。 新規追加リビジョン群の最初の ID が $HG_NODE に、 操作実施契機が $HG_SOURCE に設定されます。 hg help config.hooks.preoutgoing フックの説明も参照してください。
post-<コマンド名>
指定コマンドが正常終了した際に実行されます。 当該コマンド実行の引数が $HG_ARGS に、 終了コードが $HG_RESULT に設定されます。 当該コマンドの内部処理に渡される、 コマンド実行時引数の解析結果が、 $HG_PATS および $HG_OPTS に設定されますが、 これらに設定される値は、 内部的な Python データ形式の文字列です。 $HG_OPTS はオプションの辞書形式 (無指定オプションは、 デフォルト値が設定された状態)、 $HG_PATS は引数のリストです。 フック自身の実行失敗は無視されます。
fail-<コマンド名>
指定コマンドが異常終了した際に実行されます。 当該コマンド実行の引数が $HG_ARGS に設定されます、 当該コマンドの内部処理に渡される、 コマンド実行時引数の解析結果が、 $HG_PATS および $HG_OPTS に設定されますが、 これらに設定される値は、 内部的な Python データ形式の文字列です。 $HG_OPTS はオプションの辞書形式 (無指定オプションは、 デフォルト値が設定された状態)、 $HG_PATS は引数のリストです。 フック自身の実行失敗は無視されます。
pre-<コマンド名>
指定コマンドの実行前に実行されます。 当該コマンド実行の引数が $HG_ARGS に設定されます。 当該コマンドの内部処理に渡される、 コマンド実行時引数の解析結果が、 $HG_PATS および $HG_OPTS に設定されますが、 これらに設定される値は、 内部的な Python データ形式の文字列です。 $HG_OPTS はオプションの辞書形式 (無指定オプションは、 デフォルト値が設定された状態)、 $HG_PATS は引数のリストです。 フック実行が失敗した場合、 当該コマンドは実行されず、 Mercurial は実行失敗の終了コードを返します。
prechangegroup
push、 pull、 unbundle によるリビジョン群の追加前に実行されます。 終了コード 0 は、 処理の継続を意味します。 非 0 の終了コードは、 push、 pull、 unbundle の中断を意味します。 追加リビジョン群の取り込み元 URL が $HG_URL に設定されます。
precommit
手元のリポジトリにおける新規リビジョン作成前に実行されます。 終了コード 0 は、 処理の継続を意味します。 非 0 の終了コードは、 commit の中断を意味します。 親リビジョンの ID が $HG_PARENT1 および $HG_PARENT2 に設定されます。
prelistkeys
pushkey (bookmark のようなもの) の一覧取得前に実行されます。 非 0 の終了コードは、 処理の中断を意味します。 キーの名前空間が $HG_NAMESPACE に設定されます。
preoutgoing
他リポジトリへの変更反映において、 対象リビジョン確定前に実行されます。 非 0 の終了コードは、 処理の中断を意味します。 本フックによって、 HTTP や SSH 経由での変更反映を抑止可能です。 ローカルホスト上のリポジトリ間での pull や push または bundle コマンドも抑止可能ですが、 ファイルそのもののコピーが可能ですから、 実質的な抑止効果はありません。 操作実施契機が $HG_SOURCE に設定されます。 この環境変数に "serve" が設定されている場合、 SSH なり HTTP を経由した遠隔ホスト側が、 処理契機となっています。 "push"、 "pull" または "bundle" が設定されている場合、 同一ホスト上のリポジトリが処理契機となっています。
prepushkey
pushkey (bookmark のようなもの) の取り込み前に実行されます。 非 0 の終了コードは、 取り込み拒否を意味します。 キーの名前空間が $HG_NAMESPACE に、 キーが $HG_KEY に、 (更新の場合は) 旧値が $HG_OLD に、 新値が $HG_NEW に設定されます。
pretag
タグの新規生成前に実行されます。 終了コードが 0 の場合、 タグの生成が許可されます。 非 0 の終了コードは、 タグ生成を中断します。 タグ付け対象リビジョンの ID が $HG_NODE に、 タグ名が $HG_TAG に設定されます。 ローカルタグの場合は $HG_LOCAL=1 に、 通常のタグの場合は $HG_LOCAL=0 になります。
pretxnopen
トランザクション開始直前に実行されます。 トランザクションの種別が $HG_TXNNAME に、 一意な識別子が HG_TXNID に設定されます。 終了コードが非ゼロの場合、 トランザクションは開始されません。
pretxnclose
トランザクション完了直前に実行されます。 完了時の記録内容の全てを、 フックから参照できます。 トランザクション内容の検証や変更が可能です。 終了コードが 0 の場合、 トランザクション完了処理が継続されます。 それ以外の場合、 トランザクションはロールバックされます。 トランザクション種別が $HG_TXNNAME に、 一意な識別子が HG_TXNID に設定されます。 それ以外の情報は、 トランザクション種別に依存します。 例えば、 新規リビジョン群を追加するトランザクションの場合、 $HG_NODE (追加リビジョン群の最初のものの ID)、 $HG_NODE_LAST (最後のものの ID)、 $HG_URL および $HG_SOURCE が設定されます。 ブックマークやフェーズの変更の場合、 HG_BOOKMARK_MOVEDHG_PHASES_MOVED1 が設定されます。
txnclose
トランザクション完了直後に実行されます。 このフックの実行結果は、 トランザクションのロールバックを生じません。 フック実行に先立って、 排他は解放されます。 参照可能な変数の詳細に関しては hg help config.hooks.pretxnclose の説明を参照してください。
txnabort
トランザクション中断時に実行されます。 参照可能な変数の詳細に関しては hg help config.hooks.pretxnclose の説明を参照してください。
pretxnchangegroup
push、 pull、 unbundle によるリビジョン群の追加完了の際に、 トランザクション完了前に実行されます。 完了時の記録内容の全てを、 フックから参照できます。 トランザクション内容の検証や変更が可能です。 追加リビジョン群の最初のものの ID が $HG_NODE に、 最後のものの ID が $HG_NODE_LAST に設定されます。 終了コードが 0 の場合、 トランザクションが確定します。 非 0 の終了コードの場合、 トランザクションが巻き戻され、 push、 pull、 unbundle は中断されます。 追加リビジョンの取り込み元 URL は $HG_URL に設定されます。
pretxncommit
新規リビジョン作成の際に、 トランザクションが完了する前に実行されます。 追加されるリビジョンは、 フックから参照可能です。 そのため、 コミットログや、 変更内容の検証が可能です。 終了コードが 0 の場合、 トランザクションが確定します。 非 0 の終了コードの場合、 トランザクションが巻き戻されます。 新規追加リビジョンの ID が $HG_NODE に、 親リビジョンの ID が $HG_PARENT1 および $HG_PARENT2 に設定されます。
preupdate
作業領域の更新前に実行されます。 終了コードが 0 の場合、 更新処理が実施されます。 非 0 の終了コードの場合、 更新処理は実施されません。 更新対象リビジョンの ID が $HG_PARENT1 に設定されます。 マージ契機の更新処理の場合、 第2親リビジョンの ID が $HG_PARENT2 に設定されます。
listkeys
pushkey (bookmark のようなもの) の一覧取得後に実行されます。 キーの名前空間が $HG_NAMESPACE に設定されます。 $HG_VALUES には、 キーと値からなる辞書情報が設定されます。
pushkey
pushkey (bookmark のようなもの) の取り込み後に実行されます。 キーの名前空間が $HG_NAMESPACE に、 キーが $HG_KEY に、 (更新の場合は) 旧値が $HG_OLD に、 新値が $HG_NEW に設定されます。
tag
タグの新規生成後に実行されます。 タグ付け対象リビジョンの ID が $HG_NODE に、 タグ名が $HG_TAG に設定されます。 ローカルタグの場合は $HG_LOCAL=1 に、 通常のタグの場合は $HG_LOCAL=0 になります。
update
作業領域の更新後に実行されます。 更新対象リビジョンの ID が $HG_PARENT1 に設定されます。 マージ契機の更新処理の場合、 第2親リビジョンの ID が $HG_PARENT2 に設定されます。 更新処理が成功した場合は $HG_ERROR=0 に、 失敗した場合 (例: 衝突解消の失敗等) は $HG_ERROR=1 が設定されます。

Note

コマンド実行に対する pre- または post- 付きの汎用フックは、 トランザクション確定の成否に影響しない状況で呼ばれるため、 汎用フックを使用する方がお勧めです。 "commit" のようなフックは、 hg commit 実行以外にも、 リビジョンを作成する契機 (例: hg tag) 全てにおいて呼ばれます。

Note

Windows のような環境では、 空値の環境変数が、 引き渡されない場合があります。 例えば、 非マージリビジョンの場合、 Unix 系環境では空値の $HG_PARENT2 が引き渡されますが、 Windows 環境では、 環境変数自身の引渡しがありません。

Python 関数のフック指定文法を以下に示します:

フック名 = python:モジュール名.サブモジュール名.関数名
フック名 = python:/モジュール/ファイル/への/パス.py:関数名

Python 関数のフックは、 Mercurial プロセス内部で実行されます。 各フックの起動では、 最低でも3つのキーワード引数が渡されます。 ui オブジェクト (ui キーワード)、 repository オブジェクト (repo キーワード)、 フック起動種別を示す hooktype キーワードの3つです。 フックの説明で示した環境変数は、 HG_ 無しで、 且つ小文字表記のキーワードを使用した、 キーワード引数として渡されます。

Python 関数フックの戻り値が "true" 相当値か、 実行中に例外が発生した場合、 処理失敗とみなされます。 (※ 訳注: 失敗の場合に "true" である点に注意)

hostfingerprints

(本セクションでの設定は、 非推奨です。 [hostsecurity] セクションでの fingerprints 設定を使用してください)

既知の HTTPS ホストの証明書フィンガープリント (fingerprint) 記述。

既知の HTTPS ホストの証明書フィンガープリント (fingerprint) 記述。 本セクションに記述のあるホストと HTTPS で接続する場合、 ホスト証明書のフィンガープリントが、 記述と一致しなければ、 接続失敗とみなされます。 ssh における known_hosts 設定に相当します。

フィンガープリントは、 DER 符号化された証明書の SHA-1 ハッシュ値です。 空白あるいはカンマ区切りで、 複数値を指定可能です。 複数指定の機能は、 ホストの移行期間の、 新旧両フィンガープリントの指定等のケースで有用です。

フィンガープリント指定のあるホストとの接続の場合、 CA 連鎖の確認や web.cacerts 設定は無視されます。

記述例を以下に示します:

[hostfingerprints]
hg.intevation.de = fc:e2:8d:d9:51:cd:cb:c1:4d:18:6b:b7:44:8d:49:72:57:e6:cd:33
hg.intevation.org = fc:e2:8d:d9:51:cd:cb:c1:4d:18:6b:b7:44:8d:49:72:57:e6:cd:33

hostsecurity

外部ホスト連携時の、 通信セキュリティに関する設定行います。

以下の設定は、 全接続先に対するデフォルト挙動を指定します。

ciphers

接続に使用する、 暗号化形式の指定。

OpenSSL Cipher List Format で有効な値のみ指定可能です。 詳細は https://www.openssl.org/docs/manmaster/apps/ciphers.html#CIPHER-LIST-FORMAT を参照してください。

不適切な設定は、 接続の安全性や性能を、 著しく損ないますので、 事情に詳しいユーザ以外は、 絶対に設定しないでください。

この設定には Python 2.7 の使用が必須です。

minimumprotocol

通信暗号化方式の、 最低強度の指定。

指定が無い場合、 接続元/先の両方で使用可能な TLS バージョンから、 最新のものが採用されます。

指定可能な値は tls1.0, tls1.1, tls1.2 です。

TLS 1.0 のみに対応する古い Python を使用している場合は、 tls1.0 のみが指定可能です。

複数の TLS バージョンに対応する新しい Python を使用している場合、 デフォルト値は tls1.1 です。 tls1.0 を指定により TLS 1.0 の利用を許可できますが、 TLS 1.0 の使用は安全性が低下しますから、 接続先が TLS 1.1+ に対応しない場合にのみ、 使用することをお勧めします。

[hostsecurity] では hostname:setting 形式で記述することで、 複数の個別設定を、 ホスト毎に指定可能です。

ホスト毎に指定可能な設定を、 以下に示します。

ciphers
対応するホストとの接続にのみ適用される点以外は、 先述した ciphers 設定と同じです。
fingerprints

対応するホストの、 DER 符号化された証明書の SHA-1 ハッシュ値です。 空白あるいはカンマ区切りで、 複数値を指定可能です。 個々の値は algorithm:fingerprint 形式で記述します。 例: sha256:c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2.

algorithm には sha1, sha256, sha512 が指定可能です。

sha256 または sha512 の使用が推奨されます。

フィンガープリント指定があるホストでは、 CA 連鎖の確認は省略され、 指定フィンガープリントとの一致が必須となります。 対象ホストにおいて、 証明書が更新された場合は、 fingerprints 設定が更新されるまでは、 対象ホストとは接続できません。 この場合、 利便性が犠牲になりますが、 CA 連鎖での検証よりも、 高い安全性を維持できます。

この設定項目は verifycertsfile よりも優先されます。

minimumprotocol
対応するホストとの接続にのみ適用される点以外は、 先述した minimumprotocol 設定と同じです。
verifycertsfile

対応するホストの、 証明書格納ファイル (PEM 符号化形式) へのパス。 読み込み前に、 パス中の環境変数と ~user 記述が置換されます。

指定パス中の証明書が、 接続先の証明書、 又はその認証局 (CA) の、 いずれとも合致しない場合は、証明書不正として、 接続が拒否されます。

本項目の設定時は、 指定証明書のみが、 証明書検証に使用されます。 web.cacerts 設定や、 その他の証明書指定は無視されます。

対象ホストのホスト毎設定で fingerprints が設定されている場合、 この指定は無視されます。

The format of the file is as follows:

-----BEGIN CERTIFICATE-----
... (base64 PEM 符号化形式の証明書) ...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
... (base64 PEM 符号化形式の証明書) ...
-----END CERTIFICATE-----

記述例を以下に示します:

[hostsecurity]
hg.example.com:fingerprints = sha256:c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2
hg2.example.com:fingerprints = sha1:914f1aff87249c09b6859b88b1906d30756491ca, sha1:fc:e2:8d:d9:51:cd:cb:c1:4d:18:6b:b7:44:8d:49:72:57:e6:cd:33
foo.example.com:verifycertsfile = /etc/ssl/trusted-ca-certs.pem

例えば、 通常接続の暗号強度を TLS 1.2 以上にしつつ、 hg.example.com への接続では TLS 1.1 を許可したい場合の設定は、 以下のようになります:

[hostsecurity]
minimumprotocol = tls1.2
hg.example.com:minimumprotocol = tls1.1

http_proxy

ウェブベースの Mercurial リポジトリアクセスで使用される HTTP プロキシ設定。

host
プロキシサーバのホスト名と (省略可能な) ポート番号。 設定例: "myproxy:8000"
no
省略可能。 プロキシを使用「しない」ホスト名一覧 (カンマ区切り)
passwd
省略可能。 プロキシサーバの認証用パスワード。
user
省略可能。 プロキシサーバの認証用ユーザ名。
always
省略可能。 http_proxy.no を無視して、 プロキシを常用するか否か。 (デフォルト値: False)

merge

本セクションでは、 マージ/作業領域更新における、 挙動を設定します。

checkignored
Controls behavior when an ignored file on disk has the same name as a tracked file in the changeset being merged or updated to, and has different contents. Options are abort, warn and ignore. With abort, abort on such files. With warn, warn on such files and back them up as .orig. With ignore, don't print a warning and back them up as .orig. (default: abort)
checkunknown
Controls behavior when an unknown file that isn't ignored has the same name as a tracked file in the changeset being merged or updated to, and has different contents. Similar to merge.checkignored, except for files that are not ignored. (default: abort)

merge-patterns

特定のファイル名パターンと、 マージツールの関連付け。 本セクションでの関連付けは、 デフォルトのマージツール選択に優先します。 デフォルトのパターン指定形式は、 作業領域ルートからの相対パスに対して、 パス先頭からのパターン合致で判定する、ワイルドカード形式とみなされます。

記述例:

[merge-patterns]
**.c = kdiff3
**.jpg = myimgmerge

merge-tools

本セクションは、 ファイル毎のマージ処理のための、 外部ツールを設定します。 インストール時に事前設定されている可能性もあります。 既存の設定内容は、 hg config merge-tools で確認できます。 設定の詳細は hg help merge-tools も参照してください。

~/.hgrc での設定例を以下に示します:

[merge-tools]
# 既存ツールの実行パスを標準のものから変更
kdiff3.executable = ~/bin/kdiff3
# コマンド行形式の指定
kdiff3.args = $base $local $other -o $output
# 優先順位を高く設定
kdiff3.priority = 1

# 設定済みツールの優先度の変更
meld.priority = 0

# 設定済みツールの無効化
vimdiff.disabled = yes

# 固有ツールの設定
myHtmlTool.args = -m $local $other $base $output
myHtmlTool.regkey = Software\FooSoftware\HtmlMerge
myHtmlTool.priority = 1

利用可能な引数を以下に示します:

priority
当該ツールを選択する際の優先順位。 (デフォルト値: 0)
executable

実行可能ファイル名またはパス名。

Windows 環境では、 環境変数 ${ProgramFiles} を併用可能です。

(デフォルト値: ツール名が自動的に設定)

args
実行時にツールに指定される引数。 $base, $local, $other, $output といった表記により、マージ対象や、 結果格納先ファイルも、 指定可能です。 $local$other は、 実施する処理に応じて、 意味合いが変化します。 update や merge コマンドの場合、 $local はコマンド実施前時点の作業領域の、 $other は対象リビジョン時点の、 それぞれの内容を保持するファイルを指します。 一方で rebase の場合は、 $local が rebase 先、 $other が rebase 元リビジョン時点の、 それぞれの内容を保持するファイルを指します。 (デフォルト値: $local $base $other)
premerge
外部ツール起動前の、 非対話的な内部 3-way マージツール実行の有無。 true false keep および keep-merge3 を指定可能です。 事前マージが失敗した場合、 keep はマージマークをファイルに残します。 keep-merge3 はマージ対象に関する情報を残す点以外は keep と同じ動作です (内部マージツール :merge3 の説明も参照してください) (デフォルト値: True)
binary
当該ツールによる、 バイナリファイルのマージ可否。 デフォルト値は False ですが、 ツールの選択が、 ファイルパターンの合致で実施された場合は、 この設定値は無視されます。
symlink
当該ツールによる、 シンボリックリンクのマージ可否。 (デフォルト値: False)
check

マージ成否判定方式の選択一覧 (複数指定可能):

changed
マージ結果と以前の内容に差分が無い場合、 マージ成否を問い合わせ。
conflicts
ツールの戻り値がマージ成功を示す場合でも、 衝突マークの有無を確認。
prompt
ツールの戻り値がマージ成功を示す場合でも、 常にマージ成否を問い合わせ。
fixeol
マージツールの実行による EOL 形式変更の是正の有無。 (デフォルト値: False)
gui
当該ツール実行における GUI 表示の要否。 (デフォルト値: False)
regkey
当該ツールのインストール位置を保持する Windows レジストリキー。 Mercurial は HKEY_CURRENT_USER または HKEY_LOCAL_MACHINE 配下の当該キーの有無を、 この順序で確認します。 (デフォルト値: None)
regkeyalt
指定されたレジストリキー不在時の、 代替 Windows レジストリキー。 regname および regappend による改変は、 代替キーでも実施されます。 典型的な用途は、 64 ビット環境における 32 ビットアプリの検索です。 (デフォルト値: None)
regname
当該レジストリキーから読み出す値名。 (デフォルト値: (既定) の値)
regappend
当該レジストリキーからの読み出し値に付加する値。 典型的な設定値は、 ツールの実行可能ファイル名です。 (デフォルト値: None)

patch

hg import や Mercurial Queues (MQ) エクステンション等による、 パッチ適用に関する設定。

eol
'strict' が設定された場合、 パッチファイルと、 パッチ対象ファイルは、 行末形式がそのまま維持されます。 lf または crlf が設定された場合、 パッチファイルとパッチ対象ファイルは、 行末形式が無視され、 LF (Unix 形式) または CRLF (Windows 形式) に正規化されます。 auto が設定された場合、 パッチファイルの行末形式は無視されますが、 パッチ対象ファイルの行末形式は、 ファイル毎の設定で正規化されます。 対象ファイルが存在しないか、 改行を含まない場合、 パッチファイルの行末形式がそのまま維持されます。 (デフォルト値: strict)
fuzz
パッチ適用での 'fuzz' における許容行数。 パッチ適用において、 無視可能なコンテキスト行数を制御できます。 (デフォルト値: 2)

paths

連携対象リポジトリに、 シンボリックな名前や挙動を割り当てます。

連携先リポジトリの URL やディレクトリを定義する、 シンボリックな名前が、 設定項名になります。 例えば:

[paths]
my_server = https://example.com/my_repo
local_path = /home/me/repo

定義された項目名は、 コマンド実行時に使用できます。 例えば my_server からの履歴取り込みは hg pull my_serverlocal_path への履歴反映は hg push local_path で可能です。

コロン (:) を含む設定項目名は、 指定先との連携の際の挙動に影響する、 サブ項目名とみなされます。 例えば:

[paths]
my_server = https://example.com/my_path
my_server:pushurl = ssh://example.com/my_path

以下のサブオプションを指定できます:

pushurl
履歴反映系操作 (hg push 等) で使用される URL。 指定がない場合は、 設定項目名自体に設定された URL が使用されます。
pushrev

対象リビジョン指定無しでの、 履歴反映系操作における、 対象算出 revset。

-r 指定無しで hg push が実行された際に、 この項目で設定された revset 記述を元に、 反映対象リビジョンが算出されます。

例えば . が設定されている場合は、 作業領域の (第1) 親リビジョンが、 反映対象とみなされます。

ブックマークを含む revset を記述しても、 ブックマーク情報そのものは、 反映対象には含まれません。

以下の名前で定義された連携先は、 特殊な意味を持ちます:

default

連携先指定が無い場合に使用されます。

hg clone による複製の際は、 複製元の URL が自動的に設定されます。

default-push
(非推奨) 連携先指定がない場合の、 履歴反映系操作 (hg push 等) で使用されます。default:pushurl 設定を使うようにしてください。

phases

デフォルト時のフェーズの取り扱い設定。 フェーズ操作に関する詳細は hg help phases を参照してください。

publish
サーバとして機能する際の、 draft フェーズに対する挙動の設定。 True の場合、 クライアントから反映されたリビジョンのフェーズは、 クライアント/サーバ双方で public 化され、 クライアントに取り込み、 または複製されたリビジョンのフェーズは、 クライアント側でのみ public 化されます。(デフォルト値: True)
new-commit
新規作成されるリビジョンのフェーズ。 (デフォルト値: draft)
checksubrepos
サブリポジトリのフェーズ確認の有無。 "ignore"、 "follow" または "abort" が指定可能です。 "ignore" 以外が指定された場合、 親リポジトリのコミット前に、 サブリポジトリのフェーズを確認します。 親リポジトリ側フェーズよりも、サブリポジトリ側の公開度合が低い場合 (例: 親側の "draft" に対して、サブリポジトリ側が "secret")、 コミット中断 ("abort" 時)か、 サブリポジトリ側フェーズ値でコミット ("follow" 時)します。 (デフォルト値: follow)

profiling

プロファイリングの種別、 形式および出力先の設定。 指定可能な種別は、 精密プロファイル (名称: ls) と、 サンプリングプロファイル (名称: stat) の2種類です。

以下の説明では、 プロファイル期間に採取される生データの事を 'プロファイルデータ'、 プロファイルデータを元にした、 テキスト形式の統計報告を 'プロファイル報告' と呼称します。 プロファイル採取には、 lsprof が用いられます。

type

使用するプロファイラ種別。 (デフォルト値: ls)

ls
Python 組み込みの詳細プロファイラ。 どの環境でも利用できますが、 報告される行番号は、 常に関数の冒頭行に固定されます。 そのため、 入り組んだ関数内部の、 高コストな部位は、 特定が困難です。
stat
サードパーティ製の statprof。 現時点では Unix 環境でのみ使用でき、 0.1 秒以上を要するコマンド実行の解析で有用です。
format

プロファイル形式。 詳細プロファイラ ls 固有の設定。 (デフォルト値: text)

text
プロファイル報告を生成。 プロファイル報告をファイルに保存する場合、 プロファイルデータは保存されない点に注意してください。
kcachegrind
プロファイルデータを kcachegrind 形式化。 ファイルに保存する場合、 当該ファイルは直接 kcachegrind で読み込めます。
frequency
サンプリング頻度。 サンプリングプロファイラ stat 固有の設定。 (デフォルト値: 1000)
output
プロファイルデータ、 または統計報告の保存先。 既存ファイルが指定された場合、 ファイルは上書きされます。 (デフォルト値: None = 標準エラー出力に結果を出力)
sort
出力の整列。 詳細プロファイラ ls 固有の設定。 callcount, reccallcount, totaltime または inlinetime から1つを指定してください。 (デフォルト値: inlinetime)
limit
表示対象行数。 詳細プロファイラ ls 固有の設定。 (デフォルト値: 30)
nested
個々のメインエントリ以後の、 掘り下げ (drill-down) 情報表示の、 最大行数。 Total と Inline の差の説明を助けます。 詳細プロファイラ ls 固有の設定。 (デフォルト値: 5)

progress

Mercurial コマンドは、 処理の進捗率を表示可能です。 多くの処理において、 明確な処理総量に基づいて、 進捗表示が行われますが、 一部の処理では、 不確定な情報に基づいた進捗率が表示される場合があります。

delay
進捗表示開始までの秒数(浮動小数点) (デフォルト値: 3.0)
changedelay
次のトピック表示までの最小遅延。 refresh の3倍以上の値は無視されます。 (デフォルト値: 1.0)
refresh
進捗表示更新間隔の秒数 (デフォルト値: 0.1)
format

進捗表示の形式指定。

format 指定で有効な要素は topic (現処理内容), bar (バー表示), number (終了数), unit (対象単位), estimate (残予想時間), speed (処理速度), item (現処理対象) です。 デフォルトの item は対象の末尾 20 文字ですが、 -<num> (末尾 num 文字) や +<num> (冒頭 num 文字) 指定の追加で変更可能です。

(デフォルト値: topic bar number estimate)

width
進捗情報表示の最大幅 (画面幅と比較して、 小さい方の値を採用)
clear-complete
処理終了後の進捗表示クリアの要否 (デフォルト値: True)
disable
true 設定時は、 進捗表示を抑止。
assume-tty
true 設定時は、disable による禁止が無い限り、 常に進捗表示を実施。

rebase

allowdivergence
廃止 (obsolete) リビジョンを移動する際の、 分岐許容の有無。 (デフォルト値: False)

revsetalias

revsets 機能の別名定義。 詳細は hg help revsets を参照してください。

server

一般的なサーバ機能の設定。

uncompressed
クライアントからの、非圧縮プロトコルでの hg clone 要求に対する、 許可の可否。 通常の転送と比較して、 データ量が 40% 程度増加しますが、 サーバ/クライアント双方で、 メモリや CPU の消費が低減します。 LAN (100 Mbps またはそれ以上) や高速 WAN 経由であれば、 通常形式よりも高速 (最大 10 倍程度) です。 転送データ量が増加することから、 一般的な WAN 接続 (概ね 6 Mbps 以下) では、 非圧縮形式の方が低速です。 転送データが確定するまでの間は、 非圧縮形式であっても、 一時的な書き込みロックが保持されます。 (デフォルト値: True)
preferuncompressed
真値が設定された場合、 クライアントは非圧縮での転送を試みます。 (デフォルト値: False)
validate
反映対象リビジョンの、 完全性検証の要否。 マニフェスト中の全ての更新情報が、 転送内容に含まれているか否かで、 データの完全性を確認します。 (デフォルト値: False)
maxhttpheaderlen
HTTP クライアントに対して、 このサイズ以上のヘッダを送信しないように、 指示します (デフォルト値: 1024)
bundle1
Whether to allow clients to push and pull using the legacy bundle1 exchange format. (default: True)
bundle1gd
Like bundle1 but only used if the repository is using the generaldelta storage format. (default: True)
bundle1.push
Whether to allow clients to push using the legacy bundle1 exchange format. (default: True)
bundle1gd.push
Like bundle1.push but only used if the repository is using the generaldelta storage format. (default: True)
bundle1.pull
Whether to allow clients to pull using the legacy bundle1 exchange format. (default: True)
bundle1gd.pull

Like bundle1.pull but only used if the repository is using the generaldelta storage format. (default: True)

Large repositories using the generaldelta storage format should consider setting this option because converting generaldelta repositories to the exchange format required by the bundle1 data format can consume a lot of CPU.

smtp

電子メールを送信するエクステンション向け設定。

host
メールサーバのホスト名。 設定例: "mail.example.com"
port
省略可能。 メールサーバのポート番号。 (デフォルト値: tls 設定が smtps の場合は 465、 それ以外は 25)
tls
省略可能。 メールサーバ接続における TLS 接続の有無/方式の指定。 starttls、 smtps または none。 (デフォルト値: none)
username
省略可能。 メールサーバ接続の認証におけるユーザ名。 (デフォルト値: None)
password
省略可能。 メールサーバ接続の認証におけるパスワード。 無指定の場合、 対話的な実行であれば、 パスワード入力プロンプトが表示されますが、 非対話的な実行であれば、 処理が中断されます。 (デフォルト値: None)
local_hostname
省略可能。 MTA に対して、 送信元を指定するためのホスト名。

subpaths

連携先ホストの名称変更や一時的な停止などで、 サブリポジトリ参照先 URL が、 無効になる場合があります。 本セクションでは、 参照先 URL の書き換えを、 以下の形式で記述できます:

<パターン> = <置換結果>

パターン にはサブリポジトリの参照先 URL に合致する正規表現を、 置換結果 には参照先 URL の書き換え結果を記述します。 パターン でのグループ表記への合致は、置換結果 で参照可能です。 記述例を以下に示します:

http://server/(.*)-hg/ = http://hg.server/\1/

上記設定によって、 http://server/foo-hg/http://hg.server/foo/ に書き換えられます。

サブリポジトリの参照先 URL が相対パスの場合、 書き換えの パターン は、 参照先 URL を絶対パス化した後で、 絶対パス全体に適用されます。 絶対パス化された パターン に対する書き換えが発生しない場合は、 絶対パス化前の参照先に対し、 合致判定/買い替えを再度実施します。 書き換えの適用は、 記述順に実施されます。

templatealias

テンプレート機能の別名定義。 詳細は hg help templates を参照してください。

trusted

Mercurial の設定ファイルは、 任意のコマンド実行を可能にできることから、 信頼できるユーザ/グループに属さない設定ファイルは、 その記述内容が無視されます。 共有リポジトリや、 リポジトリサーバの .hg/hgrc におけるフックやエクステンション設定では、 しばしばこの問題が顕在化します。 但し、 web インタフェースに関しては、 [web] セクションにおける、 安全な設定記述が使用されます。

設定ファイルの所有者またはグループが、 本セクションで記述した、 ユーザまたはグループと合致する場合、 その設定ファイルは 信頼 されます。 実効ユーザ (※ 訳注: 対象リポジトリ上で実行される 「プロセス」 の実効ユーザ) は常に信頼対象になります。 全てのファイルを信頼する場合は、 ユーザ/グループ設定のいずれかで * を列挙してください。 本セクションの記述が有効になるためには、 既に信頼されているファイル において記述する必要が有ります。 例えば、 Mercurial プロセスを実行しているユーザやサービスの $HOME/.hgrc ファイルなどが該当します。

users
信頼できるユーザの一覧 (カンマ区切り)
groups
信頼できるグループの一覧 (カンマ区切り)

ui

ユーザインタフェースに関する設定。

archivemeta
hg archive コマンドまたは hgweb 経由のダウンロードで得られる アーカイブファイルへの、 メタデータ (リポジトリの初期リビジョンと、 アーカイブ対象リビジョンのハッシュ値) を保持する .hg_archival.txt ファイル格納の有無。 (デフォルト値: True)
askusername
コミットにおけるユーザ名問い合わせの有無。 True の場合、 $HGUSER$EMAIL も設定されていなければ、 ユーザ名の問い合わせを行います。 ユーザ名が入力されない場合、 ユーザ名@ホスト名 が使用されます。 (デフォルト値: False)
clonebundles

Whether the "clone bundles" feature is enabled.

When enabled, hg clone may download and apply a server-advertised bundle file from a URL instead of using the normal exchange mechanism.

This can likely result in faster and more reliable clones.

(デフォルト値: True)

clonebundlefallback

サーバからの "clone bundle" 要求が適用できなかった場合に、 代替として通常の clone 処理を行うか否か。

"clone bundles" は、 サーバ側の負荷軽減のために要求されるため、 通常 clone 処理による代替は、 デフォルトでは無効化されています。 クライアントが "clone bundles" 代替として通常 clone 処理を行うと、 事前作成した bundle ファイルによる、 負荷低減を期待していたサーバは、 想定外の負荷を受けることになります。 "clone bundles" 適用不可時に、 処理を終了させることで、 異常な負荷によるサーバダウンを防ぎます。

(デフォルト値: False)

clonebundleprefers

Defines preferences for which "clone bundles" to use.

Servers advertising "clone bundles" may advertise multiple available bundles. Each bundle may have different attributes, such as the bundle type and compression format. This option is used to prefer a particular bundle over another.

Mercurial では以下のキーを定義しています:

BUNDLESPEC
A bundle type specifier. These are strings passed to hg bundle -t. e.g. gzip-v2 or bzip2-v1.
COMPRESSION
The compression format of the bundle. e.g. gzip and bzip2.

Server operators may define custom keys.

Example values: COMPRESSION=bzip2, BUNDLESPEC=gzip-v2, COMPRESSION=gzip.

By default, the first bundle advertised by the server is used.

commitsubrepos
親リポジトリのコミットにおける、 サブリポジトリ変更のコミットの要否。 False の場合に、 変更が未コミットなサブリポジトリがあれば、 コミット処理は中断されます。 (デフォルト値: False)
debug
デバッグ情報表示要否の真偽値。 (デフォルト値: False)
editor
コミットログ入力用エディタ。 (デフォルト値: $EDITOR または vi)
fallbackencoding
UTF-8 によるコミットログの変換が失敗した場合に使用する符号化形式。 (デフォルト値: ISO-8859-1)
graphnodetemplate
ASCII 文字での履歴グラフ表示の際に、リビジョン表示で使用する文字 (デフォルト値: {graphnode})
ignore
無視対象パターンファイルの読み込み設定。 対象ファイルの形式は、 リポジトリ毎の .hgignore と同じです。 指定されたファイル名は、 リポジトリ相対とみなされます。 フック指定と同様の ignore.other = ~/.hgignore2 形式の記述により、 複数のファイルを読み込めます。 無視指定ファイルの詳細は hgignore(5) マニュアルを参照してください (※ 訳注: hg help ignore でも参照可能)。
interactive
ユーザへの問い合わせ可否の真偽値。 (デフォルト値: True)
interface
対話的処理における、インタフェース形式の指定。(デフォルト値: text) 指定可能な値は textcurses です。
interface.chunkselector
Select the interface for change recording (e.g. hg commit -i). Possible values are 'text' and 'curses'. This config overrides the interface specified by ui.interface.
logtemplate
リビジョン表示系コマンドが使用するテンプレート文字列。
merge
手動マージの際に衝突解消を行うプログラム。 マージツールに関する詳細は hg help merge-tools を、 マージツールの設定に関する詳細は [merge-tools] セクションの説明を参照してください。
mergemarkers
マージで衝突が検出された際に、 ファイルに挿入される衝突マークの、 情報ラベル部分の形式。 detailed 形式では mergemarkertemplate によるテンプレート定義が使用されます。 basic 形式では local および other だけの単純なラベルになります。上記のいずれかのみ、 指定可能です。 (デフォルト値: basic)
mergemarkertemplate

マージで衝突が検出された際に、 ファイルに挿入される衝突マークを、 テンプレート機能を使って定義。 テンプレート機能自体に関する詳細は、 hg help templates を参照してください。

デフォルト設定では、 ハッシュ値、タグ名、ブランチ名、ブックマーク、 ユーザ名および、 コミットログの一行目を表示します。

タグ名、ブランチ名、ブックマーク、 ユーザ名、 コミットログのいずれかで非 ASCII 文字を使用している場合は、 マージ対象ファイルの文字コードに、 注意を払う必要があります。 テンプレート展開の際に、 非 ASCII 文字は --encoding オプション、 HGENCODING あるいは各種ロケール環境変数で指定された文字コードで、 符号化されます。 マージ対象ファイルの文字コードと異なる場合、 文字コード混在による深刻な問題を生じます。

origbackuppath
バックアップ用の .orig ファイル格納先のディレクトリ名。 格納時点で、 対象ディレクトリが不在の場合は、 新規に作成されます。
patch

hg import やエクステンションによるパッチ適用で使用する外部ツール。 通常のパッチ適用は Mercurial 内部で処理されます。 外部ツールは、 Unix の patch コマンドと同等の挙動が要求されます。 最低限、 パス指定の冒頭要素除去の -p 、起点ディレクトリ指定の -d といったオプションの受理や、 標準入力からのパッチファイル入力が、 必要とされます。

外部ツールは固有引数と一緒に指定可能です。 例えば patch --merge 指定により、 2-way マージオプション付きで patch が実行されます。

portablefilenames

ファイル名可搬性確認の要否。 warn, ignore または abort のいずれか。 (デフォルト値: warn)

warn
可搬性の無い名前 (例: Windows 上では AUX 等の予約語や、 : 等の特殊文字、 文字大小違いで既存ファイルと衝突するファイルは、 問題を生じます) のファイルが、 構成管理対象として追加された場合、 POSIX 環境では警告が表示されます。
ignore
警告表示を抑止します。
abort
コマンドの実行が中断されます。
true
warn 設定と等価です。
false
ignore 設定と等価です。
Windows 環境では、 本設定に関わらず、 コマンド実行は常に中断されます。
quiet
コマンド実行時のメッセージ表示抑止要否の真偽値。 (デフォルト値: False)
remotecmd
clone/push/pull 処理における遠隔実行コマンド。 (デフォルト値: hg)
report_untrusted
信頼できるユーザ/グループ下に無い .hg/hgrc の無視に対する、 警告要否の真偽値。 (デフォルト値: True)
slash
パス区切りでのスラッシュ (/) 使用の要否。 パス区切りがスラッシュではない環境 (例: バックスラッシュ (\) を使用する Windows 環境) でのみ意味を持ちます。 (デフォルト値: False)
statuscopies
hg status コマンドでの複製元ファイルの表示。.
ssh
SSH 接続に使用するコマンド。 (デフォルト値: ssh)
strict
コマンド名指定の厳密性要否 (= 省略指定の禁止) の真偽値。 (デフォルト値: False)
style
コマンド出力に使用するスタイル名指定。
supportcontact
異常終了時のトレースバックの報告先 URL。 大きな組織で利用する際に、 Mercurial 実行時の障害対処を、 内部サポートで受理するようなケースで、 使用してください。
textwidth
ヘルプ出力の最大表示カラム数。 端末表示幅と本設定で値の小さい方が、 hg helphg コマンド名 --help 出力の行折り返し幅となります。 負値指定の場合、 端末表示幅のみが、 折り返し幅を決定します。 (デフォルト値: 78)
timeout
ロック解放待ちにおけるタイムアウト時間指定 (単位: 秒)。 負値はタイムアウト無しを意味します。 (デフォルト値: 600)
traceback
Mercurial は未知の例外のみ、 トレースバックを表示します。 本設定が True の際は、 Mercurial の既知の例外 (IOError や MemoryError) であっても、トレースバックを表示します。 (デフォルト値: False)
username

hg commit での新規リビジョン作成で記録されるユーザ名。 個人名と電子メールアドレスを使用するのが一般的です。 (例: Fred Widget <fred@example.com>) 設定値中の環境変数は、 展開されます。

(デフォルト値: $EMAIL 環境変数値、 または ユーザ名@ホスト名) 例えば、 システム毎設定ファイルでの username = 記述のような、 空値が設定された場合、 (Mercurial からの問い合わせを契機に) 手動で指定するか、 他の設定ファイルでの設定が必要です。

verbose
出力情報量増加要否の真偽値。 (デフォルト値: False)

web

ウェブインタフェース設定。 本セクションでの設定は、 組み込みウェブサーバ (hg serve での実行) と、 ウェブサーバ上でのスクリプト (FastCGI や WSGI 向けの hgweb.cgi およびその派生) の実行の、両方に適用されます。

Mercurial の組み込みウェブサーバは、 認証 (authentication) を行いません (ユーザを確認するための、 ユーザ名やパスワードの入力を求めません) が、 承認 (authorization: アクセス可否の判定) の機能はあります (本セクションでの設定を元に、 認証済みユーザに対して実施)。 利用するウェブサーバの、 認証機能を Mercurial 向けに正しく設定するか、 Mercurial の承認機能を、 無効化してください。

信頼できる環境 (例: 私的な LAN 配下で、 全ての利用者に hg push 許可) において、 素早くサーバを立ち上げたい場合、 以下の起動形式が良いでしょう:

$ hg --config web.allow_push=* --config web.push_ssl=False serve

この設定は、 全ての利用者に、 サーバへの hg push を許可しますので、 公開サーバで使用してはいけません。

本セクションで指定可能な設定項目を、 以下に示します:

accesslog
アクセスログの書き出し先。 (デフォルト値: 標準出力)
address
サーバの待ちうけアドレス。 (デフォルト値: ホストの持つ全アドレス)
allow_archive
利用可能なダウンロード向けのアーカイブ形式 (bz2, gz, zip) 一覧。 (デフォルト値: 空 = ダウンロード不可)
allowbz2
(非推奨) .tar.bz2 形式でのアーカイブダウンロードの可否。 (デフォルト値: False)
allowgz
(非推奨) .tar.gz 形式でのアーカイブダウンロードの可否。 (デフォルト値: False)
allowpull
hg pull 要求への応答の可否。 (デフォルト値: True)
allow_push
hg push 要求への応答の可否。 空または未設定の場合、 hg push 要求は受理されません。 * が設定された場合、 未認証ユーザを含む、 全てのユーザが hg push 可能です。 * 以外が設定された場合、 ユーザ認証が必須となり、 本項目で名前が列挙されたユーザのみが、 hg push 可能です。 本設定の確認実施は、 deny_push 確認の後です。
allow_read
アクセス元ユーザが deny_read による制限を受けていない場合の、 当該ユーザのアクセス可否の制御。 本設定が空の場合、 未認証ユーザや、 本設定で名前が列挙されていないユーザは、 アクセスが拒否されます。 本設定が空、 または未設定の場合、 全てのユーザがアクセス可能です。 allow_read* に設定するのは、 未設定 (= 全ユーザへの許可) と等価です。 本設定の確認実施は、 deny_read 確認の後です。
allowzip
(非推奨) .zip 形式でのアーカイブダウンロードの可否。 本機能を有効にした場合、 一時ファイルが作成されます。 (デフォルト値: False)
archivesubrepos
アーカイブ作成における、 サブリポジトリへの再帰実施の有無。 (デフォルト値: False)
baseurl
外部への URL 公開で使用するベース URL。 電子メール通知フック等の、 サードパーティツールにける、 公開用 URL の構築を可能にします。 設定例: http://hgserver/repos/
cacerts

PEM 符号化形式の証明書認証局証明書一覧格納ファイルへのパス。 ファイル名記述における環境変数および ~user 記述は置換されます。 本項目が記述された場合、 HTTPS 接続時の接続先ホストの認証に、 指定された証明書が使用されます。

SSL の証明書検証を、 一時的に停止したい場合は、 コマンドライン上で --insecure を指定してください。

OpenSSL の CA 証明書ファイルがあれば、 それを利用しても構いません。 多くの Linux システムでは、 /etc/ssl/certs/ca-certificates.crt に格納されている筈です。 それ以外は、 手動で生成する必要があります。 ファイルの形式を以下に示します:

-----BEGIN CERTIFICATE-----
... (base64 PEM 符号化形式の証明書) ...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
... (base64 PEM 符号化形式の証明書) ...
-----END CERTIFICATE-----
cache
hgweb におけるキャッシュ利用の可否。 (デフォルト値: True)
certificate
hg serve 実行時に使用する証明書。
collapse
descend が有効な場合、 サブディレクトリ配下のリポジトリ群も、 単一の一覧ページに表示されます。 同時に collapse も有効な場合、 サブディレクトリ配下のリポジトリ群は、 対応パスへの誘導を行う、 専用ディレクトリ配下に、グループ化されます。 この設定によって、 サブディレクトリ配下のリポジトリ表示は、 単一の要素にまとめられます。 (デフォルト値: Flase)
comparisoncontext

ファイルの差分比較を表示する際の、 コンテキスト行数。 負値または full 指定の場合、 ファイル全体が表示されます。 (デフォルト値: 5)

comparison 処理要求時に context パラメータを指定することで、 設定を上書き可能です。

contact
リポジトリ管理者の名前または電子メールアドレス。 (デフォルト値: ui.username 設定値、 $EMAIL 設定値、 あるいは "unknown")
deny_push
hg push 要求拒否の要否。 空または未設定の場合、 hg push は、 拒否されません。 * の場合、 hg push は全て拒否されます。 それ以外では、 未認証ユーザと、 本設定で名前が列挙されたユーザは、 hg push が拒否されます。 本設定の確認実施は、 allow_push 確認の前です。
deny_read
リポジトリへのアクセス拒否の要否。 空値以外が設定された場合、 未認証ユーザと、 本設定で名前が列挙されたユーザは、 リポジトリへのアクセスが全て拒否されます。 * が設定された場合、 全てのアクセスが拒否されます (この設定が必要なケースは無いでしょう)。 空または未設定の場合、 アクセス可否は allow_read 設定次第です。 (説明を参照してください) deny_readallow_read が、 両方とも空または未設定の場合、 全てのユーザがアクセス可能となります。 ウェブインタフェースの、 ディレクトリ毎インデックページ経由で、 リポジトリ一覧が公開される場合、 アクセス拒否対処ユーザに対しては、 一覧から当該リポジトリが除外されます。 deny_read での設定は、 allow_read での設定に優先します。
descend
ウェブインタフェースが表示する、 ディレクトリ毎のインデックページで、 リポジトリ一覧を表示する際に、 当該仮想パス配下のリポジトリを、 全て表示するか否かの制御。 (※ 訳注: デフォルト値は True)。 偽値の場合、 当該仮想パス直下のリポジトリのみが列挙されます。 (表示されなくなるリポジトリも、 親仮想パスでのインデックページでは、 列挙されます) (※ 訳注: 本項目の翻訳は、 わかりやすさを重視して、 原文から大幅に改変してあります。 適宜原文のヘルプも参照してください)
description
リポジトリ内容/用途に関する説明テキスト。 (デフォルト値: "unknown")
encoding
文字符号化形式。 設定例: "UTF-8" (デフォルト値: サーバ実行時の、 ロケール設定を元に符号化形式が決定)
errorlog
エラーログの書き出し先。 (デフォルト値: 標準エラー出力)
guessmime
ファイル内容の直接ダウンロードにおける、 MIME 種別の制御。 True 設定の場合、 ファイルの拡張子を元に MIME 種別を推測します。 例えば、 HTML ファイルでは text/html が使用されますが、 信用できないリポジトリを公開した場合、 cross site scripting 攻撃の原因となる可能性があります。 (デフォルト値: False)
hidden
ウェブインタフェースの、 ディレクトリ毎インデックスページにおける、 リポジトリ一覧隠蔽の要否。 (デフォルト値: False)
ipv6
IPv6 利用の要否。 (デフォルト値: False)
labels

リポジトリに関連付けられた「ラベル」文字列の一覧。

「ラベル」指定は、 テンプレートキーワード labels として、 表示のカスタマイズに使用できます。 例えば index テンプレートでの、 ラベルによる分類/取捨選択や、 summary テンプレートでの、 追加情報出力などが想定されます。 (※ 訳注: Mercurial 3.9 時点では labels 機能を使う同梱テンプレートは json テンプレートのみです)

logoimg
いくつかの表示テンプレートにおいて、 各ページで表示されるロゴの、 画像ファイル名。 staticurl に対する相対パスで指定します。 ロゴ画像ファイルのフルパスは、 "staticurl/logoimg" となります。 デフォルト値: hglogo.png
logourl
ロゴ表示に使用するベース URL。 無指定時は http://mercurial-scm.org/
maxchanges
changelog 画面における最大表示リビジョン数。 (デフォルト値: 10)
maxfiles
リビジョンあたりの最大一覧表示ファイル数。 (デフォルト値: 10)
maxshortchanges
shortlog, graph, filelog 画面における最大表示リビジョン数。 (デフォルト値: 60)
name
ウェブインタフェースで使用するリポジトリ名。 (デフォルト値: 当該作業領域のディレクトリ名)
port
待ち受けポート番号。 (デフォルト値: 8000)
prefix
サービス提供時の前置パス。 (デフォルト値: '' = サーバルート)
push_ssl
hg push における SSL 接続要求 (パスワード盗聴防止 ) の要否。 (デフォルト値: True)
refreshinterval

新規リポジトリを一覧に表示するための、 ディレクトリ一覧の再取得を、 ファイルシステムに発行する頻度 (単位: 秒)。 ワイルドカードを使って、 パス指定するケースで有用です。 時間当たりの一覧再取得頻度の増加は、 ファイルシステム走査の性能次第で、 実行性能が劣化します。

0 又は負値は、 毎回再取得することを意味します。 (デフォルト値: 20)

staticurl
静的ファイル利用のベース URL。 未設定の場合、 静的ファイル (例: アイコン画像 hgicon.png) は CGI スクリプト自身が提供します。 本項目を設定することで、 静的ファイルは HTTP サーバが直接扱います。 設定例: http://hgserver/static/
stripes
複数行出力における "シマウマ模様" の行数。 0 指定で無効化されます。 (デフォルト値: 1)
style
使用するテンプレートスタイル。 HTML テンプレート格納先の、 サブディレクトリ名を指定してください。 設定例: monoblue (デフォルト値: paper)
templates
HTML テンプレートの検索先。 デフォルトの検索先は hg debuginstall で得ることができます。

websub

ウェブ表示の置換設定定義。 ウェブインタフェースの出力の自動変換用に、 正規表現の置換パターン設定を、 本セクションで定義することが可能です。

デフォルトの hgweb 表示用テンプレートは、 コミットログ表示に対して、 これらの置換パターンを適用します。 独自定義の hgweb テンプレートにおいて、 "websub" フィルタ呼び出しを追加 (通常は "escape" フィルタの直後) することで、 コミットログ以外の任意の対象に、 置換パターンを適用可能です。

置換パターン利用の例としては、 障害番号を HTML のリンクに変換することで、 障害管理システムにリンクしたり、 『マークダウン』的な文法の記述から、 HTML への変換、といったものがあります (後述する例を参照してください)

本セクションの各エントリの名前は、 置換フィルタの名前にります。 各エントリの値は、 フィルタによる置換処理の正規表現定義となります。 本セクションでの記述は、 廃止された interhg エクステンション同様に、 Unix の sed コマンドによる、 置換指定の文法を踏襲しています:

patternname = s/合致判定正規表現/置換正規表現/[i]

区切り記号には "/" 以外にも、 任意の文字を使用可能です。 末尾において "i" が指定された場合、 合致判定の際に文字の大小を無視します。

記述例:

[websub]
issues = s|issue(\d+)|<a href="http://bts.example.org/issue\1">issue\1</a>|i
italic = s/\b_(\S+)_\b/<i>\1<\/i>/
bold = s/\*\b(\S+)\b\*/<b>\1<\/b>/

worker

並列実施に関する設定。 現状では、 Unix 系システムにおける作業領域更新で、 処理の並列実施により、 大規模リポジトリでの大幅な性能改善が見込まれます。

numcpus
並列実施に使用可能な CPU 数。 0 又は負値は、 『デフォルト値の使用』 を意味します。 (デフォルト値: 4 又は使用可能 CPU 数の大きい方の値)
backgroundclose
Whether to enable closing file handles on background threads during certain operations. Some platforms aren't very efficient at closing file handles that have been written or appended to. By performing file closing on background threads, file write rate can increase substantially. (default: true on Windows, false elsewhere)
backgroundcloseminfilecount
Minimum number of files required to trigger background file closing. Operations not writing this many files won't start background close threads. (default: 2048)
backgroundclosemaxqueue
The maximum number of opened file handles waiting to be closed in the background. This option only has an effect if backgroundclose is enabled. (default: 384)
backgroundclosethreadcount
Number of threads to process background file closes. Only relevant if backgroundclose is enabled. (default: 4)

著者

本マニュアルページの著者は Bryan O'Sullivan <bos@serpentine.com> です。

Mercurial の著者は Matt Mackall <mpm@selenic.com> です。

他の参照先

hg(1), hgignore(5)

Copying

本マニュアルの著作権は copyright 2005 Bryan O'Sullivan です。 Mercurial の著作権は copyright 2005-2016 Matt Mackall です。 本ソフトウェアは、 バージョン2またはそれ以降の GNU General Public License の元での自由な利用が保証されています。