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) |