:orphan:

hg grep
=======

search for a pattern in specified files
---------------------------------------

Search the working directory or revision history for a regular
expression in the specified files for the entire repository.

By default, grep searches the repository files in the working
directory and prints the files where it finds a match. To specify
historical revisions instead of the working directory, use the
--rev flag.

To search instead historical revision differences that contains a
change in match status ("-" for a match that becomes a non-match,
or "+" for a non-match that becomes a match), use the --diff flag.

PATTERN can be any Python (roughly Perl-compatible) regular
expression.

If no FILEs are specified and the --rev flag isn't supplied, all
files in the working directory are searched. When using the --rev
flag and specifying FILEs, use the --follow argument to also
follow the specified FILEs across renames and copies.

.. container:: verbose

  Template:

  The following keywords are supported in addition to the common template
  keywords and functions. See also :hg:`help templates`.

  :change:  String. Character denoting insertion ``+`` or removal ``-``.
            Available if ``--diff`` is specified.
  :lineno:  Integer. Line number of the match.
  :path:    String. Repository-absolute path of the file.
  :texts:   List of text chunks.

  And each entry of ``{texts}`` provides the following sub-keywords.

  :matched: Boolean. True if the chunk matches the specified pattern.
  :text:    String. Chunk content.

  See :hg:`help templates.operators` for the list expansion syntax.

Returns 0 if a match is found, 1 otherwise.

