hgignore(5) — Linux manual page


HGIGNORE(5)                 Mercurial Manual                 HGIGNORE(5)

NAME         top

       hgignore - syntax for Mercurial ignore files

SYNOPSIS         top

       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         top

       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         top

       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:


              Regular expression, Python/Perl syntax.


              Shell-style glob.


              A variant of glob that is rooted (see below).

       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 ^. To get the same
       effect with glob-syntax, you have to use rootglob.

       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:.

       Note   Patterns specified in other than .hgignore are always
              rooted.  Please see hg help patterns for details.

EXAMPLE         top

       Here is an example ignore file.

       # use glob syntax.
       syntax: glob


       # switch to regexp syntax.
       syntax: regexp

DEBUGGING         top

       Use the debugignore command to see if and why a file is ignored,
       or to see the combined ignore pattern. See hg help debugignore
       for details.

AUTHOR         top

       Vadim Gelfer <vadim.gelfer@gmail.com>

       Mercurial was written by Olivia Mackall <olivia@selenic.com>.

SEE ALSO         top

       hg(1), hgrc(5)

COPYING         top

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

AUTHOR         top

       Vadim Gelfer <vadim.gelfer@gmail.com>

       Organization: Mercurial

COLOPHON         top

       This page is part of the hg (Mercurial source code management
       system) project.  Information about the project can be found at
       ⟨http://mercurial.selenic.com/⟩.  If you have a bug report for
       this manual page, see
       ⟨http://mercurial.selenic.com/wiki/BugTracker⟩.  This page was
       obtained from the project's upstream Mercurial repository
       ⟨http://selenic.com/hg⟩ on 2024-06-14.  (At that time, the date
       of the most recent commit that was found in the repository was
       2024-04-26.)  If you discover any rendering problems in this HTML
       version of the page, or you believe there is a better or more up-
       to-date source for the page, or you have corrections or
       improvements to the information in this COLOPHON (which is not
       part of the original manual page), send a mail to


Pages that refer to this page: hg(1)hgrc(5)