3392 ), |
3391 ), |
3393 (b'concatenated', revsetlang.foldconcat), |
3392 (b'concatenated', revsetlang.foldconcat), |
3394 (b'analyzed', revsetlang.analyze), |
3393 (b'analyzed', revsetlang.analyze), |
3395 (b'optimized', revsetlang.optimize), |
3394 (b'optimized', revsetlang.optimize), |
3396 ] |
3395 ] |
3397 if opts[b'no_optimized']: |
3396 if opts['no_optimized']: |
3398 stages = stages[:-1] |
3397 stages = stages[:-1] |
3399 if opts[b'verify_optimized'] and opts[b'no_optimized']: |
3398 if opts['verify_optimized'] and opts['no_optimized']: |
3400 raise error.Abort( |
3399 raise error.Abort( |
3401 _(b'cannot use --verify-optimized with --no-optimized') |
3400 _(b'cannot use --verify-optimized with --no-optimized') |
3402 ) |
3401 ) |
3403 stagenames = {n for n, f in stages} |
3402 stagenames = {n for n, f in stages} |
3404 |
3403 |
3405 showalways = set() |
3404 showalways = set() |
3406 showchanged = set() |
3405 showchanged = set() |
3407 if ui.verbose and not opts[b'show_stage']: |
3406 if ui.verbose and not opts['show_stage']: |
3408 # show parsed tree by --verbose (deprecated) |
3407 # show parsed tree by --verbose (deprecated) |
3409 showalways.add(b'parsed') |
3408 showalways.add(b'parsed') |
3410 showchanged.update([b'expanded', b'concatenated']) |
3409 showchanged.update([b'expanded', b'concatenated']) |
3411 if opts[b'optimize']: |
3410 if opts['optimize']: |
3412 showalways.add(b'optimized') |
3411 showalways.add(b'optimized') |
3413 if opts[b'show_stage'] and opts[b'optimize']: |
3412 if opts['show_stage'] and opts['optimize']: |
3414 raise error.Abort(_(b'cannot use --optimize with --show-stage')) |
3413 raise error.Abort(_(b'cannot use --optimize with --show-stage')) |
3415 if opts[b'show_stage'] == [b'all']: |
3414 if opts['show_stage'] == [b'all']: |
3416 showalways.update(stagenames) |
3415 showalways.update(stagenames) |
3417 else: |
3416 else: |
3418 for n in opts[b'show_stage']: |
3417 for n in opts['show_stage']: |
3419 if n not in stagenames: |
3418 if n not in stagenames: |
3420 raise error.Abort(_(b'invalid stage name: %s') % n) |
3419 raise error.Abort(_(b'invalid stage name: %s') % n) |
3421 showalways.update(opts[b'show_stage']) |
3420 showalways.update(opts['show_stage']) |
3422 |
3421 |
3423 treebystage = {} |
3422 treebystage = {} |
3424 printedtree = None |
3423 printedtree = None |
3425 tree = revsetlang.parse(expr, lookup=revset.lookupfn(repo)) |
3424 tree = revsetlang.parse(expr, lookup=revset.lookupfn(repo)) |
3426 for n, f in stages: |
3425 for n, f in stages: |
3427 treebystage[n] = tree = f(tree) |
3426 treebystage[n] = tree = f(tree) |
3428 if n in showalways or (n in showchanged and tree != printedtree): |
3427 if n in showalways or (n in showchanged and tree != printedtree): |
3429 if opts[b'show_stage'] or n != b'parsed': |
3428 if opts['show_stage'] or n != b'parsed': |
3430 ui.write(b"* %s:\n" % n) |
3429 ui.write(b"* %s:\n" % n) |
3431 ui.write(revsetlang.prettyformat(tree), b"\n") |
3430 ui.write(revsetlang.prettyformat(tree), b"\n") |
3432 printedtree = tree |
3431 printedtree = tree |
3433 |
3432 |
3434 if opts[b'verify_optimized']: |
3433 if opts['verify_optimized']: |
3435 arevs = revset.makematcher(treebystage[b'analyzed'])(repo) |
3434 arevs = revset.makematcher(treebystage[b'analyzed'])(repo) |
3436 brevs = revset.makematcher(treebystage[b'optimized'])(repo) |
3435 brevs = revset.makematcher(treebystage[b'optimized'])(repo) |
3437 if opts[b'show_set'] or (opts[b'show_set'] is None and ui.verbose): |
3436 if opts['show_set'] or (opts['show_set'] is None and ui.verbose): |
3438 ui.writenoi18n( |
3437 ui.writenoi18n( |
3439 b"* analyzed set:\n", stringutil.prettyrepr(arevs), b"\n" |
3438 b"* analyzed set:\n", stringutil.prettyrepr(arevs), b"\n" |
3440 ) |
3439 ) |
3441 ui.writenoi18n( |
3440 ui.writenoi18n( |
3442 b"* optimized set:\n", stringutil.prettyrepr(brevs), b"\n" |
3441 b"* optimized set:\n", stringutil.prettyrepr(brevs), b"\n" |