2598 ui.write(b'\n') |
2600 ui.write(b'\n') |
2599 |
2601 |
2600 |
2602 |
2601 @command( |
2603 @command( |
2602 b'debugnodemap', |
2604 b'debugnodemap', |
2603 [ |
2605 ( |
2604 ( |
2606 cmdutil.debugrevlogopts |
2605 b'', |
2607 + [ |
2606 b'dump-new', |
2608 ( |
2607 False, |
2609 b'', |
2608 _(b'write a (new) persistent binary nodemap on stdout'), |
2610 b'dump-new', |
2609 ), |
2611 False, |
2610 (b'', b'dump-disk', False, _(b'dump on-disk data on stdout')), |
2612 _(b'write a (new) persistent binary nodemap on stdout'), |
2611 ( |
2613 ), |
2612 b'', |
2614 (b'', b'dump-disk', False, _(b'dump on-disk data on stdout')), |
2613 b'check', |
2615 ( |
2614 False, |
2616 b'', |
2615 _(b'check that the data on disk data are correct.'), |
2617 b'check', |
2616 ), |
2618 False, |
2617 ( |
2619 _(b'check that the data on disk data are correct.'), |
2618 b'', |
2620 ), |
2619 b'metadata', |
2621 ( |
2620 False, |
2622 b'', |
2621 _(b'display the on disk meta data for the nodemap'), |
2623 b'metadata', |
2622 ), |
2624 False, |
2623 ], |
2625 _(b'display the on disk meta data for the nodemap'), |
2624 ) |
2626 ), |
2625 def debugnodemap(ui, repo, **opts): |
2627 ] |
|
2628 ), |
|
2629 _(b'-c|-m|FILE REV'), |
|
2630 ) |
|
2631 def debugnodemap(ui, repo, file_=None, **opts): |
2626 """write and inspect on disk nodemap""" |
2632 """write and inspect on disk nodemap""" |
|
2633 if opts.get('changelog') or opts.get('manifest') or opts.get('dir'): |
|
2634 if file_ is not None: |
|
2635 raise error.CommandError(b'debugnodemap', _(b'invalid arguments')) |
|
2636 elif file_ is None: |
|
2637 opts['changelog'] = True |
|
2638 r = cmdutil.openstorage( |
|
2639 repo.unfiltered(), b'debugnodemap', file_, pycompat.byteskwargs(opts) |
|
2640 ) |
|
2641 if isinstance(r, manifest.manifestrevlog) or isinstance(r, filelog.filelog): |
|
2642 r = r._revlog |
2627 if opts['dump_new']: |
2643 if opts['dump_new']: |
2628 unfi = repo.unfiltered() |
2644 if util.safehasattr(r.index, "nodemap_data_all"): |
2629 cl = unfi.changelog |
2645 data = r.index.nodemap_data_all() |
2630 if util.safehasattr(cl.index, "nodemap_data_all"): |
|
2631 data = cl.index.nodemap_data_all() |
|
2632 else: |
2646 else: |
2633 data = nodemap.persistent_data(cl.index) |
2647 data = nodemap.persistent_data(r.index) |
2634 ui.write(data) |
2648 ui.write(data) |
2635 elif opts['dump_disk']: |
2649 elif opts['dump_disk']: |
2636 unfi = repo.unfiltered() |
2650 nm_data = nodemap.persisted_data(r) |
2637 cl = unfi.changelog |
|
2638 nm_data = nodemap.persisted_data(cl) |
|
2639 if nm_data is not None: |
2651 if nm_data is not None: |
2640 docket, data = nm_data |
2652 docket, data = nm_data |
2641 ui.write(data[:]) |
2653 ui.write(data[:]) |
2642 elif opts['check']: |
2654 elif opts['check']: |
2643 unfi = repo.unfiltered() |
2655 nm_data = nodemap.persisted_data(r) |
2644 cl = unfi.changelog |
|
2645 nm_data = nodemap.persisted_data(cl) |
|
2646 if nm_data is not None: |
2656 if nm_data is not None: |
2647 docket, data = nm_data |
2657 docket, data = nm_data |
2648 return nodemap.check_data(ui, cl.index, data) |
2658 return nodemap.check_data(ui, r.index, data) |
2649 elif opts['metadata']: |
2659 elif opts['metadata']: |
2650 unfi = repo.unfiltered() |
2660 nm_data = nodemap.persisted_data(r) |
2651 cl = unfi.changelog |
|
2652 nm_data = nodemap.persisted_data(cl) |
|
2653 if nm_data is not None: |
2661 if nm_data is not None: |
2654 docket, data = nm_data |
2662 docket, data = nm_data |
2655 ui.write((b"uid: %s\n") % docket.uid) |
2663 ui.write((b"uid: %s\n") % docket.uid) |
2656 ui.write((b"tip-rev: %d\n") % docket.tip_rev) |
2664 ui.write((b"tip-rev: %d\n") % docket.tip_rev) |
2657 ui.write((b"tip-node: %s\n") % hex(docket.tip_node)) |
2665 ui.write((b"tip-node: %s\n") % hex(docket.tip_node)) |