comparison tests/test-glog.t @ 27987:b19d8d5d6b51 stable

revset: flatten chained 'list' operations (aka function args) (issue5072) Internal _matchfiles() function can take bunch of arguments, which would lead to a maximum recursion depth error. This patch avoids the excessive stack use by flattening 'list' nodes beforehand. Since getlist() no longer takes a nested 'list' nodes, _parsealiasdecl() also needs to flatten argument list, "aliasname($1, $2, ...)".
author Yuya Nishihara <yuya@tcha.org>
date Tue, 02 Feb 2016 23:49:49 +0900
parents 1df9b8b2abda
children 6a4a4ca21907
comparison
equal deleted inserted replaced
27986:a58378983687 27987:b19d8d5d6b51
1600 [] 1600 []
1601 (group 1601 (group
1602 (func 1602 (func
1603 ('symbol', '_matchfiles') 1603 ('symbol', '_matchfiles')
1604 (list 1604 (list
1605 (list 1605 ('string', 'r:')
1606 (list 1606 ('string', 'd:relpath')
1607 ('string', 'r:') 1607 ('string', 'p:a')
1608 ('string', 'd:relpath'))
1609 ('string', 'p:a'))
1610 ('string', 'p:c')))) 1608 ('string', 'p:c'))))
1611 1609
1612 Test multiple --include/--exclude/paths 1610 Test multiple --include/--exclude/paths
1613 1611
1614 $ testlog --include a --include e --exclude b --exclude e a e 1612 $ testlog --include a --include e --exclude b --exclude e a e
1615 [] 1613 []
1616 (group 1614 (group
1617 (func 1615 (func
1618 ('symbol', '_matchfiles') 1616 ('symbol', '_matchfiles')
1619 (list 1617 (list
1620 (list 1618 ('string', 'r:')
1621 (list 1619 ('string', 'd:relpath')
1622 (list 1620 ('string', 'p:a')
1623 (list 1621 ('string', 'p:e')
1624 (list 1622 ('string', 'i:a')
1625 (list 1623 ('string', 'i:e')
1626 ('string', 'r:') 1624 ('string', 'x:b')
1627 ('string', 'd:relpath'))
1628 ('string', 'p:a'))
1629 ('string', 'p:e'))
1630 ('string', 'i:a'))
1631 ('string', 'i:e'))
1632 ('string', 'x:b'))
1633 ('string', 'x:e')))) 1625 ('string', 'x:e'))))
1634 1626
1635 Test glob expansion of pats 1627 Test glob expansion of pats
1636 1628
1637 $ expandglobs=`$PYTHON -c "import mercurial.util; \ 1629 $ expandglobs=`$PYTHON -c "import mercurial.util; \
1666 ('symbol', 'ancestors') 1658 ('symbol', 'ancestors')
1667 ('symbol', '.')) 1659 ('symbol', '.'))
1668 (func 1660 (func
1669 ('symbol', '_matchfiles') 1661 ('symbol', '_matchfiles')
1670 (list 1662 (list
1671 (list 1663 ('string', 'r:')
1672 ('string', 'r:') 1664 ('string', 'd:relpath')
1673 ('string', 'd:relpath'))
1674 ('string', 'p:dir'))))) 1665 ('string', 'p:dir')))))
1675 $ hg up -q tip 1666 $ hg up -q tip
1676 1667
1677 Test --follow on file not in parent revision 1668 Test --follow on file not in parent revision
1678 1669
1691 ('symbol', 'ancestors') 1682 ('symbol', 'ancestors')
1692 ('symbol', '.')) 1683 ('symbol', '.'))
1693 (func 1684 (func
1694 ('symbol', '_matchfiles') 1685 ('symbol', '_matchfiles')
1695 (list 1686 (list
1696 (list 1687 ('string', 'r:')
1697 ('string', 'r:') 1688 ('string', 'd:relpath')
1698 ('string', 'd:relpath'))
1699 ('string', 'p:glob:*'))))) 1689 ('string', 'p:glob:*')))))
1700 1690
1701 Test --follow on a single rename 1691 Test --follow on a single rename
1702 1692
1703 $ hg up -q 2 1693 $ hg up -q 2
1834 [] 1824 []
1835 (group 1825 (group
1836 (func 1826 (func
1837 ('symbol', '_matchfiles') 1827 ('symbol', '_matchfiles')
1838 (list 1828 (list
1839 (list 1829 ('string', 'r:')
1840 ('string', 'r:') 1830 ('string', 'd:relpath')
1841 ('string', 'd:relpath'))
1842 ('string', 'p:set:copied()')))) 1831 ('string', 'p:set:copied()'))))
1843 $ testlog --include "set:copied()" 1832 $ testlog --include "set:copied()"
1844 [] 1833 []
1845 (group 1834 (group
1846 (func 1835 (func
1847 ('symbol', '_matchfiles') 1836 ('symbol', '_matchfiles')
1848 (list 1837 (list
1849 (list 1838 ('string', 'r:')
1850 ('string', 'r:') 1839 ('string', 'd:relpath')
1851 ('string', 'd:relpath'))
1852 ('string', 'i:set:copied()')))) 1840 ('string', 'i:set:copied()'))))
1853 $ testlog -r "sort(file('set:copied()'), -rev)" 1841 $ testlog -r "sort(file('set:copied()'), -rev)"
1854 ["sort(file('set:copied()'), -rev)"] 1842 ["sort(file('set:copied()'), -rev)"]
1855 [] 1843 []
1856 1844
1863 [] 1851 []
1864 (group 1852 (group
1865 (func 1853 (func
1866 ('symbol', '_matchfiles') 1854 ('symbol', '_matchfiles')
1867 (list 1855 (list
1868 (list 1856 ('string', 'r:')
1869 ('string', 'r:') 1857 ('string', 'd:relpath')
1870 ('string', 'd:relpath'))
1871 ('string', 'p:a')))) 1858 ('string', 'p:a'))))
1872 $ testlog --removed --follow a 1859 $ testlog --removed --follow a
1873 [] 1860 []
1874 (group 1861 (group
1875 (and 1862 (and
1877 ('symbol', 'ancestors') 1864 ('symbol', 'ancestors')
1878 ('symbol', '.')) 1865 ('symbol', '.'))
1879 (func 1866 (func
1880 ('symbol', '_matchfiles') 1867 ('symbol', '_matchfiles')
1881 (list 1868 (list
1882 (list 1869 ('string', 'r:')
1883 ('string', 'r:') 1870 ('string', 'd:relpath')
1884 ('string', 'd:relpath'))
1885 ('string', 'p:a'))))) 1871 ('string', 'p:a')))))
1886 1872
1887 Test --patch and --stat with --follow and --follow-first 1873 Test --patch and --stat with --follow and --follow-first
1888 1874
1889 $ hg up -q 3 1875 $ hg up -q 3
2269 [] 2255 []
2270 (group 2256 (group
2271 (func 2257 (func
2272 ('symbol', '_matchfiles') 2258 ('symbol', '_matchfiles')
2273 (list 2259 (list
2274 (list 2260 ('string', 'r:')
2275 ('string', 'r:') 2261 ('string', 'd:relpath')
2276 ('string', 'd:relpath'))
2277 ('string', 'p:.')))) 2262 ('string', 'p:.'))))
2278 $ testlog ../b 2263 $ testlog ../b
2279 [] 2264 []
2280 (group 2265 (group
2281 (group 2266 (group