hgignore.txt
94 lines
| 3.0 KiB
| text/plain
|
TextLexer
Yun Lee
|
r14044 | Synopsis | ||
FUJIWARA Katsunori
|
r17267 | ======== | ||
Yun Lee
|
r14044 | |||
The Mercurial system uses a file called ``.hgignore`` in the root | ||||
directory of a repository to control its behavior when it searches | ||||
for files that it is not currently tracking. | ||||
Description | ||||
FUJIWARA Katsunori
|
r17267 | =========== | ||
Yun Lee
|
r14044 | |||
The working directory of a Mercurial repository will often contain | ||||
files that should not be tracked by Mercurial. These include backup | ||||
files created by editors and build products created by compilers. | ||||
These files can be ignored by listing them in a ``.hgignore`` file in | ||||
the root of the working directory. The ``.hgignore`` file must be | ||||
created manually. It is typically put under version control, so that | ||||
the settings will propagate to other repositories with push and pull. | ||||
An untracked file is ignored if its path relative to the repository | ||||
root directory, or any prefix path of that path, is matched against | ||||
any pattern in ``.hgignore``. | ||||
For example, say we have an untracked file, ``file.c``, at | ||||
``a/b/file.c`` inside our repository. Mercurial will ignore ``file.c`` | ||||
if any pattern in ``.hgignore`` matches ``a/b/file.c``, ``a/b`` or ``a``. | ||||
In addition, a Mercurial configuration file can reference a set of | ||||
Wagner Bruna
|
r14668 | per-user or global ignore files. See the ``ignore`` configuration | ||
key on the ``[ui]`` section of :hg:`help config` for details of how to | ||||
configure these files. | ||||
Yun Lee
|
r14044 | |||
Wagner Bruna
|
r14668 | To control Mercurial's handling of files that it manages, many | ||
commands support the ``-I`` and ``-X`` options; see | ||||
:hg:`help <command>` and :hg:`help patterns` for details. | ||||
Yun Lee
|
r14044 | |||
Adrian Buehlmann
|
r17116 | Files that are already tracked are not affected by .hgignore, even | ||
if they appear in .hgignore. An untracked file X can be explicitly | ||||
added with :hg:`add X`, even if X would be excluded by a pattern | ||||
in .hgignore. | ||||
Yun Lee
|
r14044 | Syntax | ||
FUJIWARA Katsunori
|
r17267 | ====== | ||
Yun Lee
|
r14044 | |||
An ignore file is a plain text file consisting of a list of patterns, | ||||
with one pattern per line. Empty lines are skipped. The ``#`` | ||||
character is treated as a comment character, and the ``\`` character | ||||
is treated as an escape character. | ||||
Mercurial supports several pattern syntaxes. The default syntax used | ||||
is Python/Perl-style regular expressions. | ||||
To change the syntax used, use a line of the following form:: | ||||
syntax: NAME | ||||
where ``NAME`` is one of the following: | ||||
``regexp`` | ||||
Regular expression, Python/Perl syntax. | ||||
``glob`` | ||||
Shell-style glob. | ||||
The chosen syntax stays in effect when parsing all patterns that | ||||
follow, until another syntax is selected. | ||||
Neither glob nor regexp patterns are rooted. A glob-syntax pattern of | ||||
the form ``*.c`` will match a file ending in ``.c`` in any directory, | ||||
and a regexp pattern of the form ``\.c$`` will do the same. To root a | ||||
regexp pattern, start it with ``^``. | ||||
Durham Goode
|
r25284 | Subdirectories can have their own .hgignore settings by adding | ||
``subinclude:path/to/subdir/.hgignore`` to the root ``.hgignore``. See | ||||
:hg:`help patterns` for details on ``subinclude:`` and ``include:``. | ||||
FUJIWARA Katsunori
|
r16504 | .. note:: | ||
Simon Heimberg
|
r20532 | |||
FUJIWARA Katsunori
|
r16504 | Patterns specified in other than ``.hgignore`` are always rooted. | ||
Please see :hg:`help patterns` for details. | ||||
Yun Lee
|
r14044 | Example | ||
FUJIWARA Katsunori
|
r17267 | ======= | ||
Yun Lee
|
r14044 | |||
Here is an example ignore file. :: | ||||
# use glob syntax. | ||||
syntax: glob | ||||
*.elc | ||||
*.pyc | ||||
*~ | ||||
# switch to regexp syntax. | ||||
syntax: regexp | ||||
^\.pc/ | ||||