Searching for commits
Mercurial supports a functional language for selecting a set of
revisions.
The language supports a number of predicates which are joined by
infix operators. Parenthesis can be used for grouping.
Identifiers such as branch names must be quoted with single
or double quotes if they contain characters outside of
[._a-zA-Z0-9\x80-\xff] or if they match one of the
predefined predicates.
Prefix operators
- not x
- Changesets not in x. Short form is
! x.
Infix operators
- x::y
-
A DAG range, meaning all changesets that are descendants
of x and ancestors of y, including x and y themselves.
If the first endpoint is left out, this is equivalent to
ancestors(y), if the second is left out it
is equivalent to descendants(x).
An alternative syntax is x..y.
- x:y
- All changesets with revision numbers between x and y, both
inclusive. Either endpoint can be left out, they default to
0 and tip.
- x and y
- The intersection of changesets in x and y. Short form is
x & y.
- x or y
- The union of changesets in x and y. There are two alternative
short forms:
x | y and x + y.
- x - y
- Changesets in x but not in y.
Predicates
- all()
- All changesets, the same as
0:tip.
- ancestor(single, single)
- Greatest common ancestor of the two changesets.
- ancestors(set)
- Changesets that are ancestors of a changeset in set.
- author(string)
- Alias for
user(string).
- bookmark([name])
- The named bookmark or all bookmarks.
- branch(set)
- All changesets belonging to the branches of changesets in set.
- children(set)
- Child changesets of changesets in set.
- closed()
- Changeset is closed.
- date(interval)
- Changesets within the interval, see
hg help dates.
- descendants(set)
- Changesets which are descendants of changesets in set.
- file(pattern)
- Changesets affecting files matched by pattern.
- follow()
- An alias for
::. (ancestors of the working copy's
first parent).
- grep(regex)
- Like
keyword(string) but accepts a regex. Use
grep(r'...') to ensure special escape characters
are handled correctly.
- head()
- Changeset is a named branch head.
- heads(set)
- Members of set with no children in set.
- id(string)
- Revision non-ambiguously specified by the given hex string
prefix.
- keyword(string)
- Search commit message, user name, and names of changed files
for string.
- limit(set, n)
- First n members of set.
- max(set)
- Changeset with highest revision number in set.
- merge()
- Changeset is a merge changeset.
- min(set)
- Changeset with lowest revision number in set.
- p1([set])
- First parent of changesets in set, or the working directory.
- p2([set])
- Second parent of changesets in set, or the working directory.
- parents([set])
- The set of all parents for all changesets in set, or the working
directory.
- present(set)
- An empty set, if any revision in set isn't found; otherwise, all
revisions in set.
- rev(number)
- Revision with the given numeric identifier.
- roots(set)
- Changesets with no parent changeset in set.
- tag(name)
- The specified tag by name, or all tagged revisions if no name is
given.
- user(string)
- User name is string.