| 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 文法であれば、 パターン記述を ^ で開始してください。
Note
.hgignore 以外の記述では、 作業領域ルートからの相対パスに対して、 パス先頭からのパターン合致が要求されます。 詳細は hg help patterns を参照してください。
無視設定ファイルの記述例を以下に示します。
# Shell 形式パターンマッチ文法を指定。 syntax: glob *.elc *.pyc *~ # 正規表現文法への切り替え。 syntax: regexp ^\.pc/
Vadim Gelfer <vadim.gelfer@gmail.com>
Mercurial was written by Matt Mackall <mpm@selenic.com>.
翻訳について何かありましたら、メーリングリスト mercurial-ja へ連絡、もしくは Twitter で #mercurialjp を付けてつぶやいてください。
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.