[PATCH python-hglib] Add the abilty to trace the protocol between the client and server
Yuya Nishihara
yuya at tcha.org
Sun Oct 16 10:50:25 EDT 2016
On Thu, 06 Oct 2016 18:04:47 +0100, Barry A. Scott wrote:
> # HG changeset patch
> # User Barry A. Scott <barry at barrys-emacs.org>
> # Date 1475770955 -3600
> # Thu Oct 06 17:22:35 2016 +0100
> # Branch hglib-protocol-trace
> # Node ID efc527cc43d7394a5bd0deb1d29c4307592f7528
> # Parent 6f15cb7cc9cb4427f35c60080f85dbf4ca5abd10
> Add the abilty to trace the protocol between the client and server.
> This is useful when debugging issues with driving hg via hglib
> where output and error messages can be lost.
>
> call setprotocoltrace with the name of a trace function or None.
> If the trace function is None no tracing is done.
> The trace function is called with the channel and its data.
This generally looks good to me. Can you update the commit message and
coding style?
https://www.mercurial-scm.org/wiki/ContributingChanges
> diff -r 6f15cb7cc9cb -r efc527cc43d7 hglib/client.py
> --- a/hglib/client.py Mon Jul 18 23:40:45 2016 -0500
> +++ b/hglib/client.py Thu Oct 06 17:22:35 2016 +0100
> @@ -62,6 +62,15 @@
> if connect:
> self.open()
>
> + self._protocoltracefn = None
> +
> + def setprotocoltrace( self, tracefn=None ):
> + """
> + if tracefn is None no trace calls will be made.
> + Otherwise tracefn is call as tracefn( channel, data )
> + """
> + self._protocoltracefn = tracefn
> +
> def __enter__(self):
> if self.server is None:
> self.open()
> @@ -119,6 +128,7 @@
>
> def runcommand(self, args, inchannels, outchannels):
> def writeblock(data):
> + if self._protocoltracefn is not None: self._protocoltracefn( b'i', data )
Using a fake channel name seems a bit unfortunate. I slightly prefer b'' or
None.s
More information about the Mercurial-devel
mailing list