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 部分には、 以下のいずれかを記述します:
文法変更の指定は、 次に文法を指定するまでに記述された、 全てのパターンに対して有効です。
glob と regexp のいずれの場合も、 作業領域ルートからの相対パスに対して、 部分一致すれば合致とみなされます。 glob 文法での *.c パターン指定は、 任意のディレクトリにおける .c 拡張子ファイルに合致しますし、 regexp 文法での \.c$ パターン指定も、 同様のファイルに合致します。 ルート直下のファイルにのみ合致させたい場合、 regexp 文法であれば、 パターン記述を ^ で開始してください。
リポジトリルートの .hgignore に subinclude: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> です。
本マニュアルページの著作権は copyright 2006 Vadim Gelfer です。 Mercurial の著作権は copyright 2005-2016 Matt Mackall です。 本ソフトウェアは、 バージョン2またはそれ以降の GNU General Public License の元での自由な利用が保証されています。