tests/test-revset.t
changeset 32817 e962c70c0aad
parent 32801 348b491c0934
child 32819 4710cc4dac99
equal deleted inserted replaced
32816:1b25c648d5b7 32817:e962c70c0aad
   155   $ try 0:1
   155   $ try 0:1
   156   (range
   156   (range
   157     ('symbol', '0')
   157     ('symbol', '0')
   158     ('symbol', '1'))
   158     ('symbol', '1'))
   159   * set:
   159   * set:
   160   <spanset+ 0:1>
   160   <spanset+ 0:2>
   161   0
   161   0
   162   1
   162   1
   163   $ try --optimize :
   163   $ try --optimize :
   164   (rangeall
   164   (rangeall
   165     None)
   165     None)
   166   * optimized:
   166   * optimized:
   167   (rangeall
   167   (rangeall
   168     None
   168     None
   169     define)
   169     define)
   170   * set:
   170   * set:
   171   <spanset+ 0:9>
   171   <spanset+ 0:10>
   172   0
   172   0
   173   1
   173   1
   174   2
   174   2
   175   3
   175   3
   176   4
   176   4
   264   3
   264   3
   265   $ try '+a+b+c+:'
   265   $ try '+a+b+c+:'
   266   (rangepost
   266   (rangepost
   267     ('symbol', '+a+b+c+'))
   267     ('symbol', '+a+b+c+'))
   268   * set:
   268   * set:
   269   <spanset+ 3:9>
   269   <spanset+ 3:10>
   270   3
   270   3
   271   4
   271   4
   272   5
   272   5
   273   6
   273   6
   274   7
   274   7
   276   9
   276   9
   277   $ try ':+a+b+c+'
   277   $ try ':+a+b+c+'
   278   (rangepre
   278   (rangepre
   279     ('symbol', '+a+b+c+'))
   279     ('symbol', '+a+b+c+'))
   280   * set:
   280   * set:
   281   <spanset+ 0:3>
   281   <spanset+ 0:4>
   282   0
   282   0
   283   1
   283   1
   284   2
   284   2
   285   3
   285   3
   286   $ try -- '-a-b-c-:+a+b+c+'
   286   $ try -- '-a-b-c-:+a+b+c+'
   287   (range
   287   (range
   288     ('symbol', '-a-b-c-')
   288     ('symbol', '-a-b-c-')
   289     ('symbol', '+a+b+c+'))
   289     ('symbol', '+a+b+c+'))
   290   * set:
   290   * set:
   291   <spanset- 3:4>
   291   <spanset- 3:5>
   292   4
   292   4
   293   3
   293   3
   294   $ log '-a-b-c-:+a+b+c+'
   294   $ log '-a-b-c-:+a+b+c+'
   295   4
   295   4
   296   3
   296   3
   624   * analyzed:
   624   * analyzed:
   625   (rangeall
   625   (rangeall
   626     None
   626     None
   627     define)
   627     define)
   628   * set:
   628   * set:
   629   <spanset+ 0:9>
   629   <spanset+ 0:10>
   630   0
   630   0
   631   1
   631   1
   632   2
   632   2
   633   3
   633   3
   634   4
   634   4
   641   * analyzed:
   641   * analyzed:
   642   (rangepre
   642   (rangepre
   643     ('symbol', '1')
   643     ('symbol', '1')
   644     define)
   644     define)
   645   * set:
   645   * set:
   646   <spanset+ 0:1>
   646   <spanset+ 0:2>
   647   0
   647   0
   648   1
   648   1
   649   $ try -p analyzed ':(1|2)'
   649   $ try -p analyzed ':(1|2)'
   650   * analyzed:
   650   * analyzed:
   651   (rangepre
   651   (rangepre
   654         ('symbol', '1')
   654         ('symbol', '1')
   655         ('symbol', '2'))
   655         ('symbol', '2'))
   656       define)
   656       define)
   657     define)
   657     define)
   658   * set:
   658   * set:
   659   <spanset+ 0:2>
   659   <spanset+ 0:3>
   660   0
   660   0
   661   1
   661   1
   662   2
   662   2
   663   $ try -p analyzed ':(1&2)'
   663   $ try -p analyzed ':(1&2)'
   664   * analyzed:
   664   * analyzed:
   679   (range
   679   (range
   680     (parentpost
   680     (parentpost
   681       ('symbol', '1'))
   681       ('symbol', '1'))
   682     ('symbol', '2'))
   682     ('symbol', '2'))
   683   * set:
   683   * set:
   684   <spanset+ 0:2>
   684   <spanset+ 0:3>
   685   0
   685   0
   686   1
   686   1
   687   2
   687   2
   688 
   688 
   689   $ try '1^::2'
   689   $ try '1^::2'
   700   $ try '9^:'
   700   $ try '9^:'
   701   (rangepost
   701   (rangepost
   702     (parentpost
   702     (parentpost
   703       ('symbol', '9')))
   703       ('symbol', '9')))
   704   * set:
   704   * set:
   705   <spanset+ 8:9>
   705   <spanset+ 8:10>
   706   8
   706   8
   707   9
   707   9
   708 
   708 
   709  x^:y should be resolved before omitting group operators
   709  x^:y should be resolved before omitting group operators
   710 
   710 
   725     (range
   725     (range
   726       (parentpost
   726       (parentpost
   727         ('symbol', '1'))
   727         ('symbol', '1'))
   728       ('symbol', '2')))
   728       ('symbol', '2')))
   729   * set:
   729   * set:
   730   <spanset+ 0:2>
   730   <spanset+ 0:3>
   731   0
   731   0
   732   1
   732   1
   733   2
   733   2
   734 
   734 
   735   $ try '(3^:4)^:2'
   735   $ try '(3^:4)^:2'
   740           (parentpost
   740           (parentpost
   741             ('symbol', '3'))
   741             ('symbol', '3'))
   742           ('symbol', '4'))))
   742           ('symbol', '4'))))
   743     ('symbol', '2'))
   743     ('symbol', '2'))
   744   * set:
   744   * set:
   745   <spanset+ 0:2>
   745   <spanset+ 0:3>
   746   0
   746   0
   747   1
   747   1
   748   2
   748   2
   749 
   749 
   750   $ try '(3^::4)^::2'
   750   $ try '(3^::4)^::2'
   768       (group
   768       (group
   769         (rangepost
   769         (rangepost
   770           (parentpost
   770           (parentpost
   771             ('symbol', '9'))))))
   771             ('symbol', '9'))))))
   772   * set:
   772   * set:
   773   <spanset+ 4:9>
   773   <spanset+ 4:10>
   774   4
   774   4
   775   5
   775   5
   776   6
   776   6
   777   7
   777   7
   778   8
   778   8
   786   (range
   786   (range
   787     (parentpost
   787     (parentpost
   788       ('symbol', '1'))
   788       ('symbol', '1'))
   789     ('symbol', '2'))
   789     ('symbol', '2'))
   790   * set:
   790   * set:
   791   <spanset+ 0:2>
   791   <spanset+ 0:3>
   792   0
   792   0
   793   1
   793   1
   794   2
   794   2
   795 
   795 
   796   $ try 'A:2' --config 'revsetalias.A=1^'
   796   $ try 'A:2' --config 'revsetalias.A=1^'
   801   (range
   801   (range
   802     (parentpost
   802     (parentpost
   803       ('symbol', '1'))
   803       ('symbol', '1'))
   804     ('symbol', '2'))
   804     ('symbol', '2'))
   805   * set:
   805   * set:
   806   <spanset+ 0:2>
   806   <spanset+ 0:3>
   807   0
   807   0
   808   1
   808   1
   809   2
   809   2
   810 
   810 
   811  but not beyond the boundary of alias expansion, because the resolution should
   811  but not beyond the boundary of alias expansion, because the resolution should
   955   (func
   955   (func
   956     ('symbol', 'grep')
   956     ('symbol', 'grep')
   957     ('string', '\x08issue\\d+'))
   957     ('string', '\x08issue\\d+'))
   958   * set:
   958   * set:
   959   <filteredset
   959   <filteredset
   960     <fullreposet+ 0:9>,
   960     <fullreposet+ 0:10>,
   961     <grep '\x08issue\\d+'>>
   961     <grep '\x08issue\\d+'>>
   962   $ try 'grep(r"\bissue\d+")'
   962   $ try 'grep(r"\bissue\d+")'
   963   (func
   963   (func
   964     ('symbol', 'grep')
   964     ('symbol', 'grep')
   965     ('string', '\\bissue\\d+'))
   965     ('string', '\\bissue\\d+'))
   966   * set:
   966   * set:
   967   <filteredset
   967   <filteredset
   968     <fullreposet+ 0:9>,
   968     <fullreposet+ 0:10>,
   969     <grep '\\bissue\\d+'>>
   969     <grep '\\bissue\\d+'>>
   970   6
   970   6
   971   $ try 'grep(r"\")'
   971   $ try 'grep(r"\")'
   972   hg: parse error at 7: unterminated string
   972   hg: parse error at 7: unterminated string
   973   [255]
   973   [255]
  1021   $ hg debugrevspec -s 'first(4:0, 3) & 3:'
  1021   $ hg debugrevspec -s 'first(4:0, 3) & 3:'
  1022   * set:
  1022   * set:
  1023   <filteredset
  1023   <filteredset
  1024     <baseset
  1024     <baseset
  1025       <limit n=3, offset=0,
  1025       <limit n=3, offset=0,
  1026         <spanset- 0:4>>>,
  1026         <spanset- 0:5>>>,
  1027     <spanset+ 3:9>>
  1027     <spanset+ 3:10>>
  1028   4
  1028   4
  1029   3
  1029   3
  1030 
  1030 
  1031   $ hg debugrevspec -s '3: & first(4:0, 3)'
  1031   $ hg debugrevspec -s '3: & first(4:0, 3)'
  1032   * set:
  1032   * set:
  1033   <filteredset
  1033   <filteredset
  1034     <spanset+ 3:9>,
  1034     <spanset+ 3:10>,
  1035     <baseset
  1035     <baseset
  1036       <limit n=3, offset=0,
  1036       <limit n=3, offset=0,
  1037         <spanset- 0:4>>>>
  1037         <spanset- 0:5>>>>
  1038   3
  1038   3
  1039   4
  1039   4
  1040 
  1040 
  1041   $ hg debugrevspec -s 'last(4:0, 3) & :1'
  1041   $ hg debugrevspec -s 'last(4:0, 3) & :1'
  1042   * set:
  1042   * set:
  1043   <filteredset
  1043   <filteredset
  1044     <baseset
  1044     <baseset
  1045       <last n=3,
  1045       <last n=3,
  1046         <spanset+ 0:4>>>,
  1046         <spanset+ 0:5>>>,
  1047     <spanset+ 0:1>>
  1047     <spanset+ 0:2>>
  1048   1
  1048   1
  1049   0
  1049   0
  1050 
  1050 
  1051   $ hg debugrevspec -s ':1 & last(4:0, 3)'
  1051   $ hg debugrevspec -s ':1 & last(4:0, 3)'
  1052   * set:
  1052   * set:
  1053   <filteredset
  1053   <filteredset
  1054     <spanset+ 0:1>,
  1054     <spanset+ 0:2>,
  1055     <baseset
  1055     <baseset
  1056       <last n=3,
  1056       <last n=3,
  1057         <spanset+ 0:4>>>>
  1057         <spanset+ 0:5>>>>
  1058   0
  1058   0
  1059   1
  1059   1
  1060 
  1060 
  1061 Test matching
  1061 Test matching
  1062 
  1062 
  1548       any)
  1548       any)
  1549     define)
  1549     define)
  1550   * set:
  1550   * set:
  1551   <filteredset
  1551   <filteredset
  1552     <filteredset
  1552     <filteredset
  1553       <spanset- 0:3>,
  1553       <spanset- 0:4>,
  1554       <spanset+ 0:3>>,
  1554       <spanset+ 0:4>>,
  1555     <not
  1555     <not
  1556       <spanset+ 1:2>>>
  1556       <spanset+ 1:3>>>
  1557   3
  1557   3
  1558   0
  1558   0
  1559 
  1559 
  1560  'a + b', which is optimized to '_list(a b)', should take the ordering of
  1560  'a + b', which is optimized to '_list(a b)', should take the ordering of
  1561  the left expression:
  1561  the left expression:
  1582       ('string', '0\x001\x002')
  1582       ('string', '0\x001\x002')
  1583       follow)
  1583       follow)
  1584     define)
  1584     define)
  1585   * set:
  1585   * set:
  1586   <filteredset
  1586   <filteredset
  1587     <spanset- 0:2>,
  1587     <spanset- 0:3>,
  1588     <baseset [0, 1, 2]>>
  1588     <baseset [0, 1, 2]>>
  1589   2
  1589   2
  1590   1
  1590   1
  1591   0
  1591   0
  1592 
  1592 
  1619           follow))
  1619           follow))
  1620       follow)
  1620       follow)
  1621     define)
  1621     define)
  1622   * set:
  1622   * set:
  1623   <filteredset
  1623   <filteredset
  1624     <spanset- 0:2>,
  1624     <spanset- 0:3>,
  1625     <addset
  1625     <addset
  1626       <baseset [2]>,
  1626       <baseset [2]>,
  1627       <spanset+ 0:1>>>
  1627       <spanset+ 0:2>>>
  1628   2
  1628   2
  1629   1
  1629   1
  1630   0
  1630   0
  1631 
  1631 
  1632  '_intlist(a b)' should behave like 'a + b':
  1632  '_intlist(a b)' should behave like 'a + b':
  1650       ('symbol', '0')
  1650       ('symbol', '0')
  1651       define)
  1651       define)
  1652     define)
  1652     define)
  1653   * set:
  1653   * set:
  1654   <filteredset
  1654   <filteredset
  1655     <spanset- 0:2>,
  1655     <spanset- 0:3>,
  1656     <baseset+ [0, 1, 2]>>
  1656     <baseset+ [0, 1, 2]>>
  1657   2
  1657   2
  1658   1
  1658   1
  1659   0
  1659   0
  1660 
  1660 
  1678       follow)
  1678       follow)
  1679     define)
  1679     define)
  1680   * set:
  1680   * set:
  1681   <filteredset
  1681   <filteredset
  1682     <baseset [0, 2, 1]>,
  1682     <baseset [0, 2, 1]>,
  1683     <spanset- 0:2>>
  1683     <spanset- 0:3>>
  1684   0
  1684   0
  1685   2
  1685   2
  1686   1
  1686   1
  1687 
  1687 
  1688  '_hexlist(a b)' should behave like 'a + b':
  1688  '_hexlist(a b)' should behave like 'a + b':
  1706       ('string', '*') (glob)
  1706       ('string', '*') (glob)
  1707       follow)
  1707       follow)
  1708     define)
  1708     define)
  1709   * set:
  1709   * set:
  1710   <filteredset
  1710   <filteredset
  1711     <spanset- 0:2>,
  1711     <spanset- 0:3>,
  1712     <baseset [0, 1, 2]>>
  1712     <baseset [0, 1, 2]>>
  1713   2
  1713   2
  1714   1
  1714   1
  1715   0
  1715   0
  1716 
  1716 
  1754       ('string', '0\x001')
  1754       ('string', '0\x001')
  1755       any)
  1755       any)
  1756     define)
  1756     define)
  1757   * set:
  1757   * set:
  1758   <filteredset
  1758   <filteredset
  1759     <spanset- 0:2>,
  1759     <spanset- 0:3>,
  1760     <not
  1760     <not
  1761       <baseset [0, 1]>>>
  1761       <baseset [0, 1]>>>
  1762   2
  1762   2
  1763 
  1763 
  1764   $ try -p optimized '2:0 & not (0:2 & (0 + 1))'
  1764   $ try -p optimized '2:0 & not (0:2 & (0 + 1))'
  1779         any)
  1779         any)
  1780       any)
  1780       any)
  1781     define)
  1781     define)
  1782   * set:
  1782   * set:
  1783   <filteredset
  1783   <filteredset
  1784     <spanset- 0:2>,
  1784     <spanset- 0:3>,
  1785     <not
  1785     <not
  1786       <baseset [0, 1]>>>
  1786       <baseset [0, 1]>>>
  1787   2
  1787   2
  1788 
  1788 
  1789  because 'present()' does nothing other than suppressing an error, the
  1789  because 'present()' does nothing other than suppressing an error, the
  1830         follow)
  1830         follow)
  1831       follow)
  1831       follow)
  1832     define)
  1832     define)
  1833   * set:
  1833   * set:
  1834   <filteredset
  1834   <filteredset
  1835     <spanset- 0:2>,
  1835     <spanset- 0:3>,
  1836     <baseset [0, 1, 2]>>
  1836     <baseset [0, 1, 2]>>
  1837   2
  1837   2
  1838   1
  1838   1
  1839   0
  1839   0
  1840 
  1840 
  1864         define)
  1864         define)
  1865       follow)
  1865       follow)
  1866     define)
  1866     define)
  1867   * set:
  1867   * set:
  1868   <filteredset
  1868   <filteredset
  1869     <spanset+ 0:2>,
  1869     <spanset+ 0:3>,
  1870     <spanset+ 0:9>>
  1870     <spanset+ 0:10>>
  1871   0
  1871   0
  1872   1
  1872   1
  1873   2
  1873   2
  1874 
  1874 
  1875  'sort()' should take effect only if it is the outermost expression:
  1875  'sort()' should take effect only if it is the outermost expression:
  1903         ('string', '-rev'))
  1903         ('string', '-rev'))
  1904       follow)
  1904       follow)
  1905     define)
  1905     define)
  1906   * set:
  1906   * set:
  1907   <filteredset
  1907   <filteredset
  1908     <spanset+ 0:2>,
  1908     <spanset+ 0:3>,
  1909     <spanset+ 0:9>>
  1909     <spanset+ 0:10>>
  1910   0
  1910   0
  1911   1
  1911   1
  1912   2
  1912   2
  1913 
  1913 
  1914  invalid argument passed to noop sort():
  1914  invalid argument passed to noop sort():
  1951   * set:
  1951   * set:
  1952   <filteredset
  1952   <filteredset
  1953     <baseset
  1953     <baseset
  1954       <limit n=1, offset=0,
  1954       <limit n=1, offset=0,
  1955         <baseset [1, 0, 2]>>>,
  1955         <baseset [1, 0, 2]>>>,
  1956     <spanset- 0:2>>
  1956     <spanset- 0:3>>
  1957   1
  1957   1
  1958 
  1958 
  1959   $ try --optimize '2:0 & not last(0 + 2 + 1)'
  1959   $ try --optimize '2:0 & not last(0 + 2 + 1)'
  1960   (and
  1960   (and
  1961     (range
  1961     (range
  1983         define)
  1983         define)
  1984       any)
  1984       any)
  1985     define)
  1985     define)
  1986   * set:
  1986   * set:
  1987   <filteredset
  1987   <filteredset
  1988     <spanset- 0:2>,
  1988     <spanset- 0:3>,
  1989     <not
  1989     <not
  1990       <baseset
  1990       <baseset
  1991         <last n=1,
  1991         <last n=1,
  1992           <baseset [1, 2, 0]>>>>>
  1992           <baseset [1, 2, 0]>>>>>
  1993   2
  1993   2
  2030         define)
  2030         define)
  2031       follow)
  2031       follow)
  2032     define)
  2032     define)
  2033   * set:
  2033   * set:
  2034   <filteredset
  2034   <filteredset
  2035     <spanset- 0:2>,
  2035     <spanset- 0:3>,
  2036     <baseset [1]>>
  2036     <baseset [1]>>
  2037   1
  2037   1
  2038 
  2038 
  2039  'A & B' can be rewritten as 'B & A' by weight, but that's fine as long as
  2039  'A & B' can be rewritten as 'B & A' by weight, but that's fine as long as
  2040  the ordering rule is determined before the rewrite; in this example,
  2040  the ordering rule is determined before the rewrite; in this example,
  2131           follow))
  2131           follow))
  2132       follow)
  2132       follow)
  2133     define)
  2133     define)
  2134   * set:
  2134   * set:
  2135   <filteredset
  2135   <filteredset
  2136     <spanset+ 0:2>,
  2136     <spanset+ 0:3>,
  2137     <addset
  2137     <addset
  2138       <baseset [2]>,
  2138       <baseset [2]>,
  2139       <filteredset
  2139       <filteredset
  2140         <fullreposet+ 0:9>,
  2140         <fullreposet+ 0:10>,
  2141         <contains 'a'>>>>
  2141         <contains 'a'>>>>
  2142   0
  2142   0
  2143   1
  2143   1
  2144   2
  2144   2
  2145 
  2145 
  2163       define)
  2163       define)
  2164     define)
  2164     define)
  2165   * set:
  2165   * set:
  2166   <addset
  2166   <addset
  2167     <filteredset
  2167     <filteredset
  2168       <spanset- 0:2>,
  2168       <spanset- 0:3>,
  2169       <contains 'a'>>,
  2169       <contains 'a'>>,
  2170     <baseset [2]>>
  2170     <baseset [2]>>
  2171   1
  2171   1
  2172   0
  2172   0
  2173   2
  2173   2
  2588         define))
  2588         define))
  2589     define)
  2589     define)
  2590   * set:
  2590   * set:
  2591   <addset
  2591   <addset
  2592     <baseset [0, 1]>,
  2592     <baseset [0, 1]>,
  2593     <spanset+ 2:3>>
  2593     <spanset+ 2:4>>
  2594   0
  2594   0
  2595   1
  2595   1
  2596   2
  2596   2
  2597   3
  2597   3
  2598 
  2598 
  2626         define))
  2626         define))
  2627     define)
  2627     define)
  2628   * set:
  2628   * set:
  2629   <addset
  2629   <addset
  2630     <addset
  2630     <addset
  2631       <spanset+ 0:1>,
  2631       <spanset+ 0:2>,
  2632       <baseset [2]>>,
  2632       <baseset [2]>>,
  2633     <addset
  2633     <addset
  2634       <spanset+ 3:4>,
  2634       <spanset+ 3:5>,
  2635       <baseset [5, 6]>>>
  2635       <baseset [5, 6]>>>
  2636   0
  2636   0
  2637   1
  2637   1
  2638   2
  2638   2
  2639   3
  2639   3
  2744         ('symbol', '4')
  2744         ('symbol', '4')
  2745         ('symbol', '5'))))
  2745         ('symbol', '5'))))
  2746   * set:
  2746   * set:
  2747   <addset
  2747   <addset
  2748     <addset
  2748     <addset
  2749       <spanset+ 0:1>,
  2749       <spanset+ 0:2>,
  2750       <spanset+ 1:2>>,
  2750       <spanset+ 1:3>>,
  2751     <addset
  2751     <addset
  2752       <spanset+ 2:3>,
  2752       <spanset+ 2:4>,
  2753       <addset
  2753       <addset
  2754         <spanset+ 3:4>,
  2754         <spanset+ 3:5>,
  2755         <spanset+ 4:5>>>>
  2755         <spanset+ 4:6>>>>
  2756   0
  2756   0
  2757   1
  2757   1
  2758   2
  2758   2
  2759   3
  2759   3
  2760   4
  2760   4
  3167   (func
  3167   (func
  3168     ('symbol', 'merge')
  3168     ('symbol', 'merge')
  3169     None)
  3169     None)
  3170   * set:
  3170   * set:
  3171   <filteredset
  3171   <filteredset
  3172     <fullreposet+ 0:9>,
  3172     <fullreposet+ 0:10>,
  3173     <merge>>
  3173     <merge>>
  3174   6
  3174   6
  3175 
  3175 
  3176   $ HGPLAIN=1
  3176   $ HGPLAIN=1
  3177   $ export HGPLAIN
  3177   $ export HGPLAIN
  3188   (func
  3188   (func
  3189     ('symbol', 'merge')
  3189     ('symbol', 'merge')
  3190     None)
  3190     None)
  3191   * set:
  3191   * set:
  3192   <filteredset
  3192   <filteredset
  3193     <fullreposet+ 0:9>,
  3193     <fullreposet+ 0:10>,
  3194     <merge>>
  3194     <merge>>
  3195   6
  3195   6
  3196 
  3196 
  3197   $ unset HGPLAIN
  3197   $ unset HGPLAIN
  3198   $ unset HGPLAINEXCEPT
  3198   $ unset HGPLAINEXCEPT
  3246       ('symbol', 'merge')
  3246       ('symbol', 'merge')
  3247       None))
  3247       None))
  3248   * set:
  3248   * set:
  3249   <addset+
  3249   <addset+
  3250     <filteredset
  3250     <filteredset
  3251       <fullreposet+ 0:9>,
  3251       <fullreposet+ 0:10>,
  3252       <merge>>,
  3252       <merge>>,
  3253     <generatorset+>>
  3253     <generatorset+>>
  3254   6
  3254   6
  3255   7
  3255   7
  3256 
  3256 
  3309       ('symbol', '2')
  3309       ('symbol', '2')
  3310       ('symbol', '5')))
  3310       ('symbol', '5')))
  3311   * set:
  3311   * set:
  3312   <baseset
  3312   <baseset
  3313     <max
  3313     <max
  3314       <fullreposet+ 0:9>,
  3314       <fullreposet+ 0:10>,
  3315       <spanset+ 2:5>>>
  3315       <spanset+ 2:6>>>
  3316   5
  3316   5
  3317 
  3317 
  3318 test chained `or` operations are flattened at parsing phase
  3318 test chained `or` operations are flattened at parsing phase
  3319 
  3319 
  3320   $ echo 'chainedorops($1, $2, $3) = $1|$2|$3' >> .hg/hgrc
  3320   $ echo 'chainedorops($1, $2, $3) = $1|$2|$3' >> .hg/hgrc
  3343       (range
  3343       (range
  3344         ('symbol', '2')
  3344         ('symbol', '2')
  3345         ('symbol', '3'))))
  3345         ('symbol', '3'))))
  3346   * set:
  3346   * set:
  3347   <addset
  3347   <addset
  3348     <spanset+ 0:1>,
  3348     <spanset+ 0:2>,
  3349     <addset
  3349     <addset
  3350       <spanset+ 1:2>,
  3350       <spanset+ 1:3>,
  3351       <spanset+ 2:3>>>
  3351       <spanset+ 2:4>>>
  3352   0
  3352   0
  3353   1
  3353   1
  3354   2
  3354   2
  3355   3
  3355   3
  3356 
  3356 
  3391       ('symbol', 'all')
  3391       ('symbol', 'all')
  3392       None))
  3392       None))
  3393   * set:
  3393   * set:
  3394   <filteredset
  3394   <filteredset
  3395     <baseset [0]>,
  3395     <baseset [0]>,
  3396     <spanset+ 0:9>>
  3396     <spanset+ 0:10>>
  3397   0
  3397   0
  3398 
  3398 
  3399 test unknown reference:
  3399 test unknown reference:
  3400 
  3400 
  3401   $ try "unknownref(0)" --config 'revsetalias.unknownref($1)=$1:$2'
  3401   $ try "unknownref(0)" --config 'revsetalias.unknownref($1)=$1:$2'
  3440         ('string', '$1'))))
  3440         ('string', '$1'))))
  3441   * set:
  3441   * set:
  3442   <addset
  3442   <addset
  3443     <baseset [9]>,
  3443     <baseset [9]>,
  3444     <filteredset
  3444     <filteredset
  3445       <fullreposet+ 0:9>,
  3445       <fullreposet+ 0:10>,
  3446       <desc '$1'>>>
  3446       <desc '$1'>>>
  3447   9
  3447   9
  3448 
  3448 
  3449   $ try 'd(2:5)'
  3449   $ try 'd(2:5)'
  3450   (func
  3450   (func
  3631       ('symbol', '2')))
  3631       ('symbol', '2')))
  3632   * set:
  3632   * set:
  3633   <filteredset
  3633   <filteredset
  3634     <baseset
  3634     <baseset
  3635       <max
  3635       <max
  3636         <fullreposet+ 0:9>,
  3636         <fullreposet+ 0:10>,
  3637         <baseset [1, 2]>>>,
  3637         <baseset [1, 2]>>>,
  3638     <not
  3638     <not
  3639       <baseset [2]>>>
  3639       <baseset [2]>>>
  3640   $ try 'min(1 or 2) and not 1'
  3640   $ try 'min(1 or 2) and not 1'
  3641   (and
  3641   (and
  3649       ('symbol', '1')))
  3649       ('symbol', '1')))
  3650   * set:
  3650   * set:
  3651   <filteredset
  3651   <filteredset
  3652     <baseset
  3652     <baseset
  3653       <min
  3653       <min
  3654         <fullreposet+ 0:9>,
  3654         <fullreposet+ 0:10>,
  3655         <baseset [1, 2]>>>,
  3655         <baseset [1, 2]>>>,
  3656     <not
  3656     <not
  3657       <baseset [1]>>>
  3657       <baseset [1]>>>
  3658   $ try 'last(1 or 2, 1) and not 2'
  3658   $ try 'last(1 or 2, 1) and not 2'
  3659   (and
  3659   (and