eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/help/revsets.txt
changeset 69 c6bca38c1cbf
equal deleted inserted replaced
68:5ff1fc726848 69:c6bca38c1cbf
       
     1 Mercurial supports a functional language for selecting a set of
       
     2 revisions.
       
     3 
       
     4 The language supports a number of predicates which are joined by infix
       
     5 operators. Parenthesis can be used for grouping.
       
     6 
       
     7 Identifiers such as branch names must be quoted with single or double
       
     8 quotes if they contain characters outside of
       
     9 ``[._a-zA-Z0-9\x80-\xff]`` or if they match one of the predefined
       
    10 predicates.
       
    11 
       
    12 Special characters can be used in quoted identifiers by escaping them,
       
    13 e.g., ``\n`` is interpreted as a newline. To prevent them from being
       
    14 interpreted, strings can be prefixed with ``r``, e.g. ``r'...'``.
       
    15 
       
    16 There is a single prefix operator:
       
    17 
       
    18 ``not x``
       
    19   Changesets not in x. Short form is ``! x``.
       
    20 
       
    21 These are the supported infix operators:
       
    22 
       
    23 ``x::y``
       
    24   A DAG range, meaning all changesets that are descendants of x and
       
    25   ancestors of y, including x and y themselves. If the first endpoint
       
    26   is left out, this is equivalent to ``ancestors(y)``, if the second
       
    27   is left out it is equivalent to ``descendants(x)``.
       
    28 
       
    29   An alternative syntax is ``x..y``.
       
    30 
       
    31 ``x:y``
       
    32   All changesets with revision numbers between x and y, both
       
    33   inclusive. Either endpoint can be left out, they default to 0 and
       
    34   tip.
       
    35 
       
    36 ``x and y``
       
    37   The intersection of changesets in x and y. Short form is ``x & y``.
       
    38 
       
    39 ``x or y``
       
    40   The union of changesets in x and y. There are two alternative short
       
    41   forms: ``x | y`` and ``x + y``.
       
    42 
       
    43 ``x - y``
       
    44   Changesets in x but not in y.
       
    45 
       
    46 The following predicates are supported:
       
    47 
       
    48 .. predicatesmarker
       
    49 
       
    50 Command line equivalents for :hg:`log`::
       
    51 
       
    52   -f    ->  ::.
       
    53   -d x  ->  date(x)
       
    54   -k x  ->  keyword(x)
       
    55   -m    ->  merge()
       
    56   -u x  ->  user(x)
       
    57   -b x  ->  branch(x)
       
    58   -P x  ->  !::x
       
    59   -l x  ->  limit(expr, x)
       
    60 
       
    61 Some sample queries:
       
    62 
       
    63 - Changesets on the default branch::
       
    64 
       
    65     hg log -r "branch(default)"
       
    66 
       
    67 - Changesets on the default branch since tag 1.5 (excluding merges)::
       
    68 
       
    69     hg log -r "branch(default) and 1.5:: and not merge()"
       
    70 
       
    71 - Open branch heads::
       
    72 
       
    73     hg log -r "head() and not closed()"
       
    74 
       
    75 - Changesets between tags 1.3 and 1.5 mentioning "bug" that affect
       
    76   ``hgext/*``::
       
    77 
       
    78     hg log -r "1.3::1.5 and keyword(bug) and file('hgext/*')"
       
    79 
       
    80 - Changesets in committed May 2008, sorted by user::
       
    81 
       
    82     hg log -r "sort(date('May 2008'), user)"
       
    83 
       
    84 - Changesets mentioning "bug" or "issue" that are not in a tagged
       
    85   release::
       
    86 
       
    87     hg log -r "(keyword(bug) or keyword(issue)) and not ancestors(tagged())"