Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/debugcommands.py @ 46702:a4c19a162615
sshpeer: enable+fix warning about sshpeers not being closed explicitly
I recommend looking at this with a diff that ignores indentation.
The test changes are because localrepo.close() updates some cache,
which appears happens earlier now on rollbacks or strips or something.
The http changes are because httppeer.close() prints stats with
--verbose.
Differential Revision: https://phab.mercurial-scm.org/D9999
author | Valentin Gatien-Baron <valentin.gatienbaron@gmail.com> |
---|---|
date | Mon, 15 Feb 2021 14:48:36 -0500 |
parents | e4e971abb6a3 |
children | a41565bef69f |
comparison
equal
deleted
inserted
replaced
46701:db8037e38085 | 46702:a4c19a162615 |
---|---|
469 @command(b'debugcapabilities', [], _(b'PATH'), norepo=True) | 469 @command(b'debugcapabilities', [], _(b'PATH'), norepo=True) |
470 def debugcapabilities(ui, path, **opts): | 470 def debugcapabilities(ui, path, **opts): |
471 """lists the capabilities of a remote peer""" | 471 """lists the capabilities of a remote peer""" |
472 opts = pycompat.byteskwargs(opts) | 472 opts = pycompat.byteskwargs(opts) |
473 peer = hg.peer(ui, opts, path) | 473 peer = hg.peer(ui, opts, path) |
474 caps = peer.capabilities() | 474 try: |
475 ui.writenoi18n(b'Main capabilities:\n') | 475 caps = peer.capabilities() |
476 for c in sorted(caps): | 476 ui.writenoi18n(b'Main capabilities:\n') |
477 ui.write(b' %s\n' % c) | 477 for c in sorted(caps): |
478 b2caps = bundle2.bundle2caps(peer) | 478 ui.write(b' %s\n' % c) |
479 if b2caps: | 479 b2caps = bundle2.bundle2caps(peer) |
480 ui.writenoi18n(b'Bundle2 capabilities:\n') | 480 if b2caps: |
481 for key, values in sorted(pycompat.iteritems(b2caps)): | 481 ui.writenoi18n(b'Bundle2 capabilities:\n') |
482 ui.write(b' %s\n' % key) | 482 for key, values in sorted(pycompat.iteritems(b2caps)): |
483 for v in values: | 483 ui.write(b' %s\n' % key) |
484 ui.write(b' %s\n' % v) | 484 for v in values: |
485 ui.write(b' %s\n' % v) | |
486 finally: | |
487 peer.close() | |
485 | 488 |
486 | 489 |
487 @command( | 490 @command( |
488 b'debugchangedfiles', | 491 b'debugchangedfiles', |
489 [ | 492 [ |
2613 } | 2616 } |
2614 | 2617 |
2615 with ui.configoverride(overrides): | 2618 with ui.configoverride(overrides): |
2616 peer = hg.peer(ui, {}, path) | 2619 peer = hg.peer(ui, {}, path) |
2617 | 2620 |
2618 local = peer.local() is not None | 2621 try: |
2619 canpush = peer.canpush() | 2622 local = peer.local() is not None |
2620 | 2623 canpush = peer.canpush() |
2621 ui.write(_(b'url: %s\n') % peer.url()) | 2624 |
2622 ui.write(_(b'local: %s\n') % (_(b'yes') if local else _(b'no'))) | 2625 ui.write(_(b'url: %s\n') % peer.url()) |
2623 ui.write(_(b'pushable: %s\n') % (_(b'yes') if canpush else _(b'no'))) | 2626 ui.write(_(b'local: %s\n') % (_(b'yes') if local else _(b'no'))) |
2627 ui.write( | |
2628 _(b'pushable: %s\n') % (_(b'yes') if canpush else _(b'no')) | |
2629 ) | |
2630 finally: | |
2631 peer.close() | |
2624 | 2632 |
2625 | 2633 |
2626 @command( | 2634 @command( |
2627 b'debugpickmergetool', | 2635 b'debugpickmergetool', |
2628 [ | 2636 [ |
2721 With five args, set a key to new if it currently is set to old. | 2729 With five args, set a key to new if it currently is set to old. |
2722 Reports success or failure. | 2730 Reports success or failure. |
2723 """ | 2731 """ |
2724 | 2732 |
2725 target = hg.peer(ui, {}, repopath) | 2733 target = hg.peer(ui, {}, repopath) |
2726 if keyinfo: | 2734 try: |
2727 key, old, new = keyinfo | 2735 if keyinfo: |
2728 with target.commandexecutor() as e: | 2736 key, old, new = keyinfo |
2729 r = e.callcommand( | 2737 with target.commandexecutor() as e: |
2730 b'pushkey', | 2738 r = e.callcommand( |
2731 { | 2739 b'pushkey', |
2732 b'namespace': namespace, | 2740 { |
2733 b'key': key, | 2741 b'namespace': namespace, |
2734 b'old': old, | 2742 b'key': key, |
2735 b'new': new, | 2743 b'old': old, |
2736 }, | 2744 b'new': new, |
2737 ).result() | 2745 }, |
2738 | 2746 ).result() |
2739 ui.status(pycompat.bytestr(r) + b'\n') | 2747 |
2740 return not r | 2748 ui.status(pycompat.bytestr(r) + b'\n') |
2741 else: | 2749 return not r |
2742 for k, v in sorted(pycompat.iteritems(target.listkeys(namespace))): | 2750 else: |
2743 ui.write( | 2751 for k, v in sorted(pycompat.iteritems(target.listkeys(namespace))): |
2744 b"%s\t%s\n" % (stringutil.escapestr(k), stringutil.escapestr(v)) | 2752 ui.write( |
2745 ) | 2753 b"%s\t%s\n" |
2754 % (stringutil.escapestr(k), stringutil.escapestr(v)) | |
2755 ) | |
2756 finally: | |
2757 target.close() | |
2746 | 2758 |
2747 | 2759 |
2748 @command(b'debugpvec', [], _(b'A B')) | 2760 @command(b'debugpvec', [], _(b'A B')) |
2749 def debugpvec(ui, repo, a, b=None): | 2761 def debugpvec(ui, repo, a, b=None): |
2750 ca = scmutil.revsingle(repo, a) | 2762 ca = scmutil.revsingle(repo, a) |
4093 norepo=True, | 4105 norepo=True, |
4094 ) | 4106 ) |
4095 def debugwireargs(ui, repopath, *vals, **opts): | 4107 def debugwireargs(ui, repopath, *vals, **opts): |
4096 opts = pycompat.byteskwargs(opts) | 4108 opts = pycompat.byteskwargs(opts) |
4097 repo = hg.peer(ui, opts, repopath) | 4109 repo = hg.peer(ui, opts, repopath) |
4098 for opt in cmdutil.remoteopts: | 4110 try: |
4099 del opts[opt[1]] | 4111 for opt in cmdutil.remoteopts: |
4100 args = {} | 4112 del opts[opt[1]] |
4101 for k, v in pycompat.iteritems(opts): | 4113 args = {} |
4102 if v: | 4114 for k, v in pycompat.iteritems(opts): |
4103 args[k] = v | 4115 if v: |
4104 args = pycompat.strkwargs(args) | 4116 args[k] = v |
4105 # run twice to check that we don't mess up the stream for the next command | 4117 args = pycompat.strkwargs(args) |
4106 res1 = repo.debugwireargs(*vals, **args) | 4118 # run twice to check that we don't mess up the stream for the next command |
4107 res2 = repo.debugwireargs(*vals, **args) | 4119 res1 = repo.debugwireargs(*vals, **args) |
4108 ui.write(b"%s\n" % res1) | 4120 res2 = repo.debugwireargs(*vals, **args) |
4109 if res1 != res2: | 4121 ui.write(b"%s\n" % res1) |
4110 ui.warn(b"%s\n" % res2) | 4122 if res1 != res2: |
4123 ui.warn(b"%s\n" % res2) | |
4124 finally: | |
4125 repo.close() | |
4111 | 4126 |
4112 | 4127 |
4113 def _parsewirelangblocks(fh): | 4128 def _parsewirelangblocks(fh): |
4114 activeaction = None | 4129 activeaction = None |
4115 blocklines = [] | 4130 blocklines = [] |