[PATCH 4 of 6] ui: log devel warnings
Yuya Nishihara
yuya at tcha.org
Thu Mar 3 08:05:15 EST 2016
On Tue, 01 Mar 2016 05:51:46 -0600, timeless wrote:
> # HG changeset patch
> # User timeless <timeless at mozdev.org>
> # Date 1454078236 0
> # Fri Jan 29 14:37:16 2016 +0000
> # Node ID b7684e135b04f0549a094c542ec934ff82690c04
> # Parent c30da8f7af8b18641911c972197e69a2a2aa46d8
> ui: log devel warnings
>
> This makes it easier for the blackbox extension to log
> what is happening.
>
> diff --git a/mercurial/ui.py b/mercurial/ui.py
> --- a/mercurial/ui.py
> +++ b/mercurial/ui.py
> @@ -89,6 +89,17 @@
> # pager =""",
> }
>
> +class uilogasfile(object):
> + """ shim to present a file-like object and map output to ui.log
> + """
> + def __init__(self, ui, service='develwarn'):
> + def write(msg):
> + ui.log(service, msg)
It should be (service, "%s", msg) because "msg" is a format string.
> + def flush():
> + ui.flush()
> + self.write = write
> + self.flush = flush
> +
> class ui(object):
> def __init__(self, src=None):
> # _buffers: used for temporary capture of output
> @@ -1069,11 +1080,14 @@
> stacklevel += 1 # get in develwarn
> if self.tracebackflag:
> util.debugstacktrace(msg, stacklevel, self.ferr, self.fout)
> + util.debugstacktrace(msg, stacklevel, uilogasfile(self))
Instead of mocking up a file object, you can factor out a function that
returns a list of pretty-formatted traceback lines.
More information about the Mercurial-devel
mailing list