[PATCH 1 of 5] paths: drop ui.status label from output of "hg paths name"
Matt Mackall
mpm at selenic.com
Tue Jan 12 14:46:10 CST 2016
On Sat, 2016-01-09 at 18:45 +0900, Yuya Nishihara wrote:
> # HG changeset patch
> # User Yuya Nishihara <yuya at tcha.org>
> # Date 1450011240 -32400
> # Sun Dec 13 21:54:00 2015 +0900
> # Node ID 16099841acaa4fa42dffa994b9ac9e16c89a43be
> # Parent 0db7943a4e1f843814865dc1b2cb22b994acc74f
> paths: drop ui.status label from output of "hg paths name"
>
> We just need to not print path if --quiet. ui.status label is unwanted.
Why?
My guess is: we don't have a problem with the label but the formatter doesn't
support "status" and "note" output levels. That's probably a weakness of the
formatter API. Yep:
$ hgrep condwrite
mercurial/commands.py: fm.condwrite(not ui.quiet, 'rev node', pad + '
%d:%s',
mercurial/commands.py: fm.condwrite(not ui.quiet, 'rev node', fmt, rev,
hexfunc(ctx.node()),
mercurial/commands.py: fm.condwrite(ui.verbose and extsource, 'source',
mercurial/commands.py: fm.condwrite(ui.verbose and exttestedwith,
'testedwith',
mercurial/commands.py: fm.condwrite(ui.verbose and extbuglink, 'buglink',
mercurial/commands.py: fm.condwrite(ui.debugflag, 'hash', '%s ',
hex(mf[f]))
mercurial/commands.py: fm.condwrite(ui.verbose, 'mode type', '%s %1s ',
mode[fl], char[fl])
mercurial/commands.py: fm.condwrite(not nostatus, 'status', '%s ',
ms[f].upper(), label=l)
mercurial/commands.py: fm.condwrite(showchar, 'status', '%s ',
char, label=label)
mercurial/commands.py: fm.condwrite(not ui.quiet, 'rev node', fmt,
mercurial/commands.py: fm.condwrite(ui.verbose and tagtype, 'type', '
%s',
Most of the use of fm.condwrite is to deal with the lack of ui.status/ui.note
equivalents.
We should probably actually have these components available to the templater
regardless of verbosity level (though debug is a different matter, because it's
usually expensive). We should probably do something like this:
diff -r c36fa631cb6e mercurial/formatter.py
--- a/mercurial/formatter.py Sun Dec 13 21:54:00 2015 +0900
+++ b/mercurial/formatter.py Tue Jan 12 14:45:00 2016 -0600
@@ -51,6 +51,12 @@
fieldkeys = fields.split()
assert len(fieldkeys) == len(fielddata)
self._item.update(zip(fieldkeys, fielddata))
+ def status(self, fields, deftext, *fielddata, **opts):
+ '''do status-level text output while assigning data to item'''
+ self.write(fields, deftext, *fielddata, **opts)
+ def note(self, fields, deftext, *fielddata, **opts):
+ '''do verbose text output while assigning data to item'''
+ self.write(fields, deftext, *fielddata, **opts)
def condwrite(self, cond, fields, deftext, *fielddata, **opts):
'''do conditional write (primarily for plain formatter)'''
fieldkeys = fields.split()
@@ -80,6 +86,10 @@
pass
def write(self, fields, deftext, *fielddata, **opts):
self._ui.write(deftext % fielddata, **opts)
+ def status(self, fields, deftext, *fielddata, **opts):
+ self._ui.status(deftext % fielddata, **opts)
+ def note(self, fields, deftext, *fielddata, **opts):
+ self._ui.note(deftext % fielddata, **opts)
def condwrite(self, cond, fields, deftext, *fielddata, **opts):
'''do conditional write'''
if cond:
--
Mathematics is the supreme nostalgia of our time.
More information about the Mercurial-devel
mailing list