hgignore

Mercurial 無視設定ファイルの文法

Author: Vadim Gelfer <vadim.gelfer@gmail.com>
Organization: Mercurial
Manual section:5
Manual group:Mercurial Manual

概要

Mercurial では、リポジトリのルート直下に置かれた .hgignore と呼ばれるファイルを使用して、構成管理対象からの ファイルの除外を制御します。

説明

Mercurial の作業領域には、 構成管理対象にしたくないファイルも 多数存在し得ます。 例えば、 エディタの作成するバックアップファイルや コンパイラが生成する中途/最終成果物等です。 作業領域のルート直下に置いた .hgignore ファイルにおいて、 対象ファイルの名前を列挙することで、 これらを無視することができます。 .hgignore は明示的に手動で作成しなければなりません。 一般的には、 このファイルも構成管理対象に含めますので、 履歴の反映や取り込みによって、 設定内容は他のリポジトリにも伝播します。

未登録ファイルが、 作業領域のルートからの相対パス、 またはそのパスの先頭部分が、 .hgignore に記述されたパターンと合致する場合、 そのファイルは Mercurial からは無視されます。

例えば、 未登録ファイル file.c が、 作業領域の a/b/file.c に位置すると仮定します。 a/b/file.c, a/b または a といったパターンが .hgignore に記述されている場合、 Mercurial はこの file.c を無視します。

作業領域毎の無視設定に加えて、 ユーザ毎、 またはシステム毎の 無視設定ファイルを指定することが可能です: これらのファイルの設定に関する詳細は、 hg help config[ui] セクションにおける ignore 設定キーの説明を参照してください。

既に構成管理下にあるファイルに対して、 Mercurial コマンドの実施要否を制御するには、 多くのコマンドでサポートされている -I および -X の使用が便利です。 詳細に関しては、 hg help <command> および hg help patterns を参照してください。

既に管理対象となっているファイルは、 .hgignore 中の指定が合致しても、 無視の対象とはなりません。 .hgignore 記述により、 管理対象外のファイル X が無視されている場合でも、 明示的な hg add X 実行により、 ファイル X を管理対象にすることが可能です。

文法

無視設定ファイルは、 1行1パターンでパターンが列挙された、 単純なテキストファイルです。 空の行は無視されます。 # 文字はコメント文字、 \ 文字はエスケープ文字として扱われます。

Mercurial の無視設定ファイルでは、 複数のパターン文法を利用できます。 デフォルトの文法は Python/Perl 形式の正規表現です。

文法を変更するには、 以下のような形式の行を記述します:

syntax: NAME

NAME 部分には、 以下のいずれかを記述します:

regexp
Python/Perl 形式の正規表現 (※ 訳注: re でも可)
glob
Shell 形式のパターンマッチ

文法変更の指定は、 次に文法を指定するまでに記述された、 全てのパターンに対して有効です。

glob と regexp のいずれの場合も、 作業領域ルートからの相対パスに対して、 部分一致すれば合致とみなされます。 glob 文法での *.c パターン指定は、 任意のディレクトリにおける .c 拡張子ファイルに合致しますし、 regexp 文法での \.c$ パターン指定も、 同様のファイルに合致します。 ルート直下のファイルにのみ合致させたい場合、 regexp 文法であれば、 パターン記述を ^ で開始してください。

リポジトリルートの .hgignoresubinclude:path/to/subdir/.hgignore 記述を追加することで、 各サブディレクトリ固有の .hgignore 設定が可能です。 subinclude:include: の詳細は hg help patterns を参照してください。

Note

.hgignore 記述の場合、 作業領域ルートからの相対パスに対して、 途中要素の部分一致でも合致とみなされますが、 通常のパターン指定では、 相対パスの先頭からの合致が要求されます。 詳細は hg help patterns を参照してください。

記述例

無視設定ファイルの記述例を以下に示します。

# Shell 形式パターンマッチ文法を指定。
syntax: glob

*.elc
*.pyc
*~

# 正規表現文法への切り替え。
syntax: regexp
^\.pc/

著者

本マニュアルページの著者は Vadim Gelfer <vadim.gelfer@gmail.com> です。

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

他の参照先

hg(1), hgrc(5)

Copying

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