Go to main content

man pages section 5: File Formats

Exit Print View

Updated: Thursday, June 13, 2019
 
 

hgignore (5)

Name

hgignore - syntax for Mercurial ignore files

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

HGIGNORE(5)                    Mercurial Manual                    HGIGNORE(5)



NAME
       hgignore - syntax for Mercurial ignore files

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 manu-
       ally. 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 pat-
       terns 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  fol-
       low, 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 pat-
       tern, start it with ^.

       Subdirectories can have their own .hgignore settings by  adding  subin-
       clude:path/to/subdir/.hgignore  to the root .hgignore. See hg help pat-
       terns for details on subinclude: and include:.

       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/

AUTHOR
       Vadim Gelfer <vadim.gelfer@gmail.com>

       Mercurial was written by Matt Mackall <mpm@selenic.com>.


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+--------------------------------+
       |ATTRIBUTE TYPE |        ATTRIBUTE VALUE         |
       +---------------+--------------------------------+
       |Availability   | developer/versioning/mercurial |
       +---------------+--------------------------------+
       |Stability      | Committed                      |
       +---------------+--------------------------------+
SEE ALSO
       hg(1), hgrc(5)

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

AUTHOR
       Vadim Gelfer <vadim.gelfer@gmail.com>

       Organization: Mercurial



NOTES
       This    software    was    built    from    source     available     at
       https://github.com/oracle/solaris-userland.    The  original  community
       source was downloaded from   https://www.mercurial-scm.org/release/mer-
       curial-4.7.1.tar.gz

       Further information about this software can be found on the open source
       community website at http://mercurial-scm.org/.



                                                                   HGIGNORE(5)