hgignore

syntax for Mercurial ignore files

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.ca/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 文法であれば、 パターン記述を ^ で開始してください。

Note

.hgignore 以外の記述では、 作業領域ルートからの相対パスに対して、 パス先頭からのパターン合致が要求されます。 詳細は hg help patterns を参照してください。

記述例

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

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

*.elc
*.pyc
*~

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

Author

Vadim Gelfer <vadim.gelfer@gmail.com>

Mercurial was written by Matt Mackall <mpm@selenic.com>.

翻訳について

翻訳について何かありましたら、メーリングリスト mercurial-ja へ連絡、もしくは Twitter で #mercurialjp を付けてつぶやいてください。

See Also

hg(1), hgrc(5)

Copying

This manual page is copyright 2006 Vadim Gelfer. Mercurial is copyright 2005-2012 Matt Mackall. Free use of this software is granted under the terms of the GNU General Public License version 2 or any later version.