diff options
Diffstat (limited to 'mercurial/help/hgignore.txt')
-rw-r--r-- | mercurial/help/hgignore.txt | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/mercurial/help/hgignore.txt b/mercurial/help/hgignore.txt new file mode 100644 index 0000000..3f82177 --- /dev/null +++ b/mercurial/help/hgignore.txt @@ -0,0 +1,89 @@ +Synopsis +======== + +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 +=========== + +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 +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. + +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. + +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. + +Syntax +====== + +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 ``^``. + +.. note:: + Patterns specified in other than ``.hgignore`` are always rooted. + Please see :hg:`help patterns` for details. + +Example +======= + +Here is an example ignore file. :: + + # use glob syntax. + syntax: glob + + *.elc + *.pyc + *~ + + # switch to regexp syntax. + syntax: regexp + ^\.pc/ |