Mercurial > hg
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 |