Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/debugcommands.py @ 48561:04688c51f81f
exchangev2: remove it
As discussed on the mailing list, this is incomplete and unused with little
hope of revival.
Differential Revision: https://phab.mercurial-scm.org/D11954
author | Rapha?l Gom?s <rgomes@octobus.net> |
---|---|
date | Tue, 07 Dec 2021 16:44:22 +0100 |
parents | b669e40fbbd6 |
children | ce8c82a5cd65 |
comparison
equal
deleted
inserted
replaced
48560:d6c53b40b078 | 48561:04688c51f81f |
---|---|
89 url as urlmod, | 89 url as urlmod, |
90 util, | 90 util, |
91 vfs as vfsmod, | 91 vfs as vfsmod, |
92 wireprotoframing, | 92 wireprotoframing, |
93 wireprotoserver, | 93 wireprotoserver, |
94 wireprotov2peer, | |
95 ) | 94 ) |
96 from .interfaces import repository | 95 from .interfaces import repository |
97 from .utils import ( | 96 from .utils import ( |
98 cborutil, | 97 cborutil, |
99 compression, | 98 compression, |
4350 and connect to that. By default, the connection will perform a handshake | 4349 and connect to that. By default, the connection will perform a handshake |
4351 and establish an appropriate peer instance. | 4350 and establish an appropriate peer instance. |
4352 | 4351 |
4353 ``--peer`` can be used to bypass the handshake protocol and construct a | 4352 ``--peer`` can be used to bypass the handshake protocol and construct a |
4354 peer instance using the specified class type. Valid values are ``raw``, | 4353 peer instance using the specified class type. Valid values are ``raw``, |
4355 ``http2``, ``ssh1``, and ``ssh2``. ``raw`` instances only allow sending | 4354 ``ssh1``. ``raw`` instances only allow sending raw data payloads and |
4356 raw data payloads and don't support higher-level command actions. | 4355 don't support higher-level command actions. |
4357 | 4356 |
4358 ``--noreadstderr`` can be used to disable automatic reading from stderr | 4357 ``--noreadstderr`` can be used to disable automatic reading from stderr |
4359 of the peer (for SSH connections only). Disabling automatic reading of | 4358 of the peer (for SSH connections only). Disabling automatic reading of |
4360 stderr is useful for making output more deterministic. | 4359 stderr is useful for making output more deterministic. |
4361 | 4360 |
4526 if opts[b'localssh'] and not repo: | 4525 if opts[b'localssh'] and not repo: |
4527 raise error.Abort(_(b'--localssh requires a repository')) | 4526 raise error.Abort(_(b'--localssh requires a repository')) |
4528 | 4527 |
4529 if opts[b'peer'] and opts[b'peer'] not in ( | 4528 if opts[b'peer'] and opts[b'peer'] not in ( |
4530 b'raw', | 4529 b'raw', |
4531 b'http2', | |
4532 b'ssh1', | 4530 b'ssh1', |
4533 b'ssh2', | |
4534 ): | 4531 ): |
4535 raise error.Abort( | 4532 raise error.Abort( |
4536 _(b'invalid value for --peer'), | 4533 _(b'invalid value for --peer'), |
4537 hint=_(b'valid values are "raw", "ssh1", and "ssh2"'), | 4534 hint=_(b'valid values are "raw" and "ssh1"'), |
4538 ) | 4535 ) |
4539 | 4536 |
4540 if path and opts[b'localssh']: | 4537 if path and opts[b'localssh']: |
4541 raise error.Abort(_(b'cannot specify --localssh with an explicit path')) | 4538 raise error.Abort(_(b'cannot specify --localssh with an explicit path')) |
4542 | 4539 |
4591 autoreadstderr = not opts[b'noreadstderr'] | 4588 autoreadstderr = not opts[b'noreadstderr'] |
4592 | 4589 |
4593 if opts[b'peer'] == b'ssh1': | 4590 if opts[b'peer'] == b'ssh1': |
4594 ui.write(_(b'creating ssh peer for wire protocol version 1\n')) | 4591 ui.write(_(b'creating ssh peer for wire protocol version 1\n')) |
4595 peer = sshpeer.sshv1peer( | 4592 peer = sshpeer.sshv1peer( |
4596 ui, | |
4597 url, | |
4598 proc, | |
4599 stdin, | |
4600 stdout, | |
4601 stderr, | |
4602 None, | |
4603 autoreadstderr=autoreadstderr, | |
4604 ) | |
4605 elif opts[b'peer'] == b'ssh2': | |
4606 ui.write(_(b'creating ssh peer for wire protocol version 2\n')) | |
4607 peer = sshpeer.sshv2peer( | |
4608 ui, | 4593 ui, |
4609 url, | 4594 url, |
4610 proc, | 4595 proc, |
4611 stdin, | 4596 stdin, |
4612 stdout, | 4597 stdout, |
4664 if opts[b'peer'] == b'raw': | 4649 if opts[b'peer'] == b'raw': |
4665 openerargs['sendaccept'] = False | 4650 openerargs['sendaccept'] = False |
4666 | 4651 |
4667 opener = urlmod.opener(ui, authinfo, **openerargs) | 4652 opener = urlmod.opener(ui, authinfo, **openerargs) |
4668 | 4653 |
4669 if opts[b'peer'] == b'http2': | 4654 if opts[b'peer'] == b'raw': |
4670 ui.write(_(b'creating http peer for wire protocol version 2\n')) | |
4671 # We go through makepeer() because we need an API descriptor for | |
4672 # the peer instance to be useful. | |
4673 maybe_silent = ( | |
4674 ui.silent() | |
4675 if opts[b'nologhandshake'] | |
4676 else util.nullcontextmanager() | |
4677 ) | |
4678 with maybe_silent, ui.configoverride( | |
4679 {(b'experimental', b'httppeer.advertise-v2'): True} | |
4680 ): | |
4681 peer = httppeer.makepeer(ui, path, opener=opener) | |
4682 | |
4683 if not isinstance(peer, httppeer.httpv2peer): | |
4684 raise error.Abort( | |
4685 _( | |
4686 b'could not instantiate HTTP peer for ' | |
4687 b'wire protocol version 2' | |
4688 ), | |
4689 hint=_( | |
4690 b'the server may not have the feature ' | |
4691 b'enabled or is not allowing this ' | |
4692 b'client version' | |
4693 ), | |
4694 ) | |
4695 | |
4696 elif opts[b'peer'] == b'raw': | |
4697 ui.write(_(b'using raw connection to peer\n')) | 4655 ui.write(_(b'using raw connection to peer\n')) |
4698 peer = None | 4656 peer = None |
4699 elif opts[b'peer']: | 4657 elif opts[b'peer']: |
4700 raise error.Abort( | 4658 raise error.Abort( |
4701 _(b'--peer %s not supported with HTTP peers') % opts[b'peer'] | 4659 _(b'--peer %s not supported with HTTP peers') % opts[b'peer'] |
4772 ) | 4730 ) |
4773 else: | 4731 else: |
4774 with peer.commandexecutor() as e: | 4732 with peer.commandexecutor() as e: |
4775 res = e.callcommand(command, args).result() | 4733 res = e.callcommand(command, args).result() |
4776 | 4734 |
4777 if isinstance(res, wireprotov2peer.commandresponse): | 4735 ui.status( |
4778 val = res.objects() | 4736 _(b'response: %s\n') |
4779 ui.status( | 4737 % stringutil.pprint(res, bprefix=True, indent=2) |
4780 _(b'response: %s\n') | 4738 ) |
4781 % stringutil.pprint(val, bprefix=True, indent=2) | |
4782 ) | |
4783 else: | |
4784 ui.status( | |
4785 _(b'response: %s\n') | |
4786 % stringutil.pprint(res, bprefix=True, indent=2) | |
4787 ) | |
4788 | 4739 |
4789 elif action == b'batchbegin': | 4740 elif action == b'batchbegin': |
4790 if batchedcommands is not None: | 4741 if batchedcommands is not None: |
4791 raise error.Abort(_(b'nested batchbegin not allowed')) | 4742 raise error.Abort(_(b'nested batchbegin not allowed')) |
4792 | 4743 |