comparison mercurial/debugcommands.py @ 31044:0b8356705de6

revset: split language services to revsetlang module (API) New revsetlang module hosts parser, tokenizer, and miscellaneous functions working on parsed tree. It does not include functions for evaluation such as getset() and match(). 2288 mercurial/revset.py 684 mercurial/revsetlang.py 2972 total get*() functions are aliased since they are common in revset.py.
author Yuya Nishihara <yuya@tcha.org>
date Sun, 19 Feb 2017 18:19:33 +0900
parents d194f0dba7ac
children 2912b06905dc
comparison
equal deleted inserted replaced
31043:aea06029919e 31044:0b8356705de6
50 pvec, 50 pvec,
51 pycompat, 51 pycompat,
52 repair, 52 repair,
53 revlog, 53 revlog,
54 revset, 54 revset,
55 revsetlang,
55 scmutil, 56 scmutil,
56 setdiscovery, 57 setdiscovery,
57 simplemerge, 58 simplemerge,
58 smartset, 59 smartset,
59 sslutil, 60 sslutil,
1792 Use --verify-optimized to compare the optimized result with the unoptimized 1793 Use --verify-optimized to compare the optimized result with the unoptimized
1793 one. Returns 1 if the optimized result differs. 1794 one. Returns 1 if the optimized result differs.
1794 """ 1795 """
1795 stages = [ 1796 stages = [
1796 ('parsed', lambda tree: tree), 1797 ('parsed', lambda tree: tree),
1797 ('expanded', lambda tree: revset.expandaliases(ui, tree)), 1798 ('expanded', lambda tree: revsetlang.expandaliases(ui, tree)),
1798 ('concatenated', revset.foldconcat), 1799 ('concatenated', revsetlang.foldconcat),
1799 ('analyzed', revset.analyze), 1800 ('analyzed', revsetlang.analyze),
1800 ('optimized', revset.optimize), 1801 ('optimized', revsetlang.optimize),
1801 ] 1802 ]
1802 if opts['no_optimized']: 1803 if opts['no_optimized']:
1803 stages = stages[:-1] 1804 stages = stages[:-1]
1804 if opts['verify_optimized'] and opts['no_optimized']: 1805 if opts['verify_optimized'] and opts['no_optimized']:
1805 raise error.Abort(_('cannot use --verify-optimized with ' 1806 raise error.Abort(_('cannot use --verify-optimized with '
1824 raise error.Abort(_('invalid stage name: %s') % n) 1825 raise error.Abort(_('invalid stage name: %s') % n)
1825 showalways.update(opts['show_stage']) 1826 showalways.update(opts['show_stage'])
1826 1827
1827 treebystage = {} 1828 treebystage = {}
1828 printedtree = None 1829 printedtree = None
1829 tree = revset.parse(expr, lookup=repo.__contains__) 1830 tree = revsetlang.parse(expr, lookup=repo.__contains__)
1830 for n, f in stages: 1831 for n, f in stages:
1831 treebystage[n] = tree = f(tree) 1832 treebystage[n] = tree = f(tree)
1832 if n in showalways or (n in showchanged and tree != printedtree): 1833 if n in showalways or (n in showchanged and tree != printedtree):
1833 if opts['show_stage'] or n != 'parsed': 1834 if opts['show_stage'] or n != 'parsed':
1834 ui.write(("* %s:\n") % n) 1835 ui.write(("* %s:\n") % n)
1835 ui.write(revset.prettyformat(tree), "\n") 1836 ui.write(revsetlang.prettyformat(tree), "\n")
1836 printedtree = tree 1837 printedtree = tree
1837 1838
1838 if opts['verify_optimized']: 1839 if opts['verify_optimized']:
1839 arevs = revset.makematcher(treebystage['analyzed'])(repo) 1840 arevs = revset.makematcher(treebystage['analyzed'])(repo)
1840 brevs = revset.makematcher(treebystage['optimized'])(repo) 1841 brevs = revset.makematcher(treebystage['optimized'])(repo)