Mercurial > hg
changeset 22701:cb28d2b3db0b
formatter: add general way to switch hex/short functions
This seems a bit awkward, but it can avoid duplicates in annotate, tags,
branches and bookmarks.
I guess fm.hexfunc can eventually be removed (or redesigned) when it gets
template backend.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Fri, 03 Oct 2014 22:20:02 +0900 |
parents | 41421bd9c42e |
children | 08a4e70ed183 |
files | mercurial/commands.py mercurial/formatter.py |
diffstat | 2 files changed, 9 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/commands.py Fri Oct 03 11:37:56 2014 -0500 +++ b/mercurial/commands.py Fri Oct 03 22:20:02 2014 +0900 @@ -276,10 +276,7 @@ fm = ui.formatter('annotate', opts) datefunc = ui.quiet and util.shortdate or util.datestr - if fm or ui.debugflag: - hexfn = hex - else: - hexfn = short + hexfn = fm.hexfunc opmap = [('user', ' ', lambda x: x[0].user(), ui.shortuser), ('number', ' ', lambda x: x[0].rev(), str), @@ -6086,10 +6083,7 @@ """ fm = ui.formatter('tags', opts) - if fm or ui.debugflag: - hexfunc = hex - else: - hexfunc = short + hexfunc = fm.hexfunc tagtype = "" for t, n in reversed(repo.tagslist()):
--- a/mercurial/formatter.py Fri Oct 03 11:37:56 2014 -0500 +++ b/mercurial/formatter.py Fri Oct 03 22:20:02 2014 +0900 @@ -6,6 +6,7 @@ # GNU General Public License version 2 or any later version. import cPickle +from node import hex, short from i18n import _ import encoding, util @@ -16,6 +17,8 @@ self._style = opts.get("style") self._template = opts.get("template") self._item = None + # function to convert node to string suitable for this output + self.hexfunc = hex def __nonzero__(self): '''return False if we're not doing real templating so we can skip extra work''' @@ -51,6 +54,10 @@ '''the default text output scheme''' def __init__(self, ui, topic, opts): baseformatter.__init__(self, ui, topic, opts) + if ui.debugflag: + self.hexfunc = hex + else: + self.hexfunc = short def __nonzero__(self): return False def startitem(self):