Mercurial > hg-stable
changeset 7369:87158be081b8
cmdutil: use change contexts for cset-printer and cset-templater
author | Dirkjan Ochtman <dirkjan@ochtman.nl> |
---|---|
date | Fri, 14 Nov 2008 13:59:25 +0100 |
parents | 595ba2537d4f |
children | 7bc62ebe7693 |
files | hgext/bugzilla.py hgext/children.py hgext/churn.py hgext/graphlog.py hgext/keyword.py hgext/notify.py hgext/transplant.py mercurial/cmdutil.py mercurial/commands.py |
diffstat | 9 files changed, 29 insertions(+), 34 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/bugzilla.py Fri Nov 14 12:44:26 2008 +0100 +++ b/hgext/bugzilla.py Fri Nov 14 13:59:25 2008 +0100 @@ -291,7 +291,7 @@ tmpl = templater.parsestring(tmpl, quoted=False) t.use_template(tmpl) self.ui.pushbuffer() - t.show(changenode=ctx.node(), changes=ctx.changeset(), + t.show(ctx, changes=ctx.changeset(), bug=str(bugid), hgweb=self.ui.config('web', 'baseurl'), root=self.repo.root,
--- a/hgext/children.py Fri Nov 14 12:44:26 2008 +0100 +++ b/hgext/children.py Fri Nov 14 13:59:25 2008 +0100 @@ -28,8 +28,8 @@ ctx = repo[rev] displayer = cmdutil.show_changeset(ui, repo, opts) - for node in [cp.node() for cp in ctx.children()]: - displayer.show(changenode=node) + for cctx in ctx.children(): + displayer.show(cctx) cmdtable = {
--- a/hgext/churn.py Fri Nov 14 12:44:26 2008 +0100 +++ b/hgext/churn.py Fri Nov 14 13:59:25 2008 +0100 @@ -63,7 +63,7 @@ tmpl = maketemplater(ui, repo, tmpl) def getkey(ctx): ui.pushbuffer() - tmpl.show(changenode=ctx.node()) + tmpl.show(ctx) return ui.popbuffer() count = pct = 0
--- a/hgext/graphlog.py Fri Nov 14 12:44:26 2008 +0100 +++ b/hgext/graphlog.py Fri Nov 14 13:59:25 2008 +0100 @@ -325,7 +325,7 @@ # log_strings is the list of all log strings to draw alongside # the graph. ui.pushbuffer() - cs_printer.show(rev, node) + cs_printer.show(repo[rev]) log_strings = ui.popbuffer().split("\n")[:-1] if node in repo_parents: node_ch = "@"
--- a/hgext/keyword.py Fri Nov 14 12:44:26 2008 +0100 +++ b/hgext/keyword.py Fri Nov 14 13:59:25 2008 +0100 @@ -151,7 +151,7 @@ kw = mobj.group(1) self.ct.use_template(self.templates[kw]) self.ui.pushbuffer() - self.ct.show(changenode=node, root=self.repo.root, file=path) + self.ct.show(self.repo[node], root=self.repo.root, file=path) ekw = templatefilters.firstline(self.ui.popbuffer()) return '$%s: %s $' % (kw, ekw) return subfunc(kwsub, data)
--- a/hgext/notify.py Fri Nov 14 12:44:26 2008 +0100 +++ b/hgext/notify.py Fri Nov 14 13:59:25 2008 +0100 @@ -165,7 +165,7 @@ def node(self, node): '''format one changeset.''' - self.t.show(changenode=node, changes=self.repo.changelog.read(node), + self.t.show(self.repo[node], changes=self.repo.changelog.read(node), baseurl=self.ui.config('web', 'baseurl'), root=self.repo.root, webroot=self.root)
--- a/hgext/transplant.py Fri Nov 14 12:44:26 2008 +0100 +++ b/hgext/transplant.py Fri Nov 14 13:59:25 2008 +0100 @@ -398,7 +398,7 @@ transplants = [] merges = [] for node in nodes: - displayer.show(changenode=node) + displayer.show(repo[node]) action = None while not action: action = ui.prompt(_('apply changeset? [ynmpcq?]:'))
--- a/mercurial/cmdutil.py Fri Nov 14 12:44:26 2008 +0100 +++ b/mercurial/cmdutil.py Fri Nov 14 13:59:25 2008 +0100 @@ -596,26 +596,24 @@ return 1 return 0 - def show(self, rev=0, changenode=None, copies=(), **props): + def show(self, ctx, copies=(), **props): if self.buffered: self.ui.pushbuffer() - self._show(rev, changenode, copies, props) - self.hunk[rev] = self.ui.popbuffer() + self._show(ctx, copies, props) + self.hunk[ctx.rev()] = self.ui.popbuffer() else: - self._show(rev, changenode, copies, props) + self._show(ctx, copies, props) - def _show(self, rev, changenode, copies, props): + def _show(self, ctx, copies, props): '''show a single changeset or file revision''' - log = self.repo.changelog - if changenode is None: - changenode = log.node(rev) - elif not rev: - rev = log.rev(changenode) + changenode = ctx.node() + rev = ctx.rev() if self.ui.quiet: self.ui.write("%d:%s\n" % (rev, short(changenode))) return + log = self.repo.changelog changes = log.read(changenode) date = util.datestr(changes[2]) extra = changes[5] @@ -716,14 +714,12 @@ '''set template string to use''' self.t.cache['changeset'] = t - def _show(self, rev, changenode, copies, props): + def _show(self, ctx, copies, props): '''show a single changeset or file revision''' + changenode = ctx.node() + rev = ctx.rev() + log = self.repo.changelog - if changenode is None: - changenode = log.node(rev) - elif not rev: - rev = log.rev(changenode) - changes = log.read(changenode) def showlist(name, values, plural=None, **args):
--- a/mercurial/commands.py Fri Nov 14 12:44:26 2008 +0100 +++ b/mercurial/commands.py Fri Nov 14 13:59:25 2008 +0100 @@ -9,7 +9,7 @@ from repo import RepoError, NoCapability from i18n import _, gettext import os, re, sys -import hg, util, revlog, bundlerepo, extensions, copies +import hg, util, revlog, bundlerepo, extensions, copies, context import difflib, patch, time, help, mdiff, tempfile, url import version import archival, changegroup, cmdutil, hgweb.server, sshserver, hbisect @@ -288,13 +288,13 @@ if len(nodes) == 1: # narrowed it down to a single revision ui.write(_("The first %s revision is:\n") % transition) - displayer.show(changenode=nodes[0]) + displayer.show(repo[nodes[0]]) else: # multiple possible revisions ui.write(_("Due to skipped revisions, the first " "%s revision could be any of:\n") % transition) for n in nodes: - displayer.show(changenode=n) + displayer.show(repo[n]) def check_state(state, interactive=True): if not state['good'] or not state['bad']: @@ -1270,7 +1270,7 @@ return 1 displayer = cmdutil.show_changeset(ui, repo, opts) for n in heads: - displayer.show(changenode=n) + displayer.show(repo[n]) def help_(ui, name=None, with_version=False): """show help for a given topic or a help overview @@ -1729,7 +1729,7 @@ if opts.get('no_merges') and len(parents) == 2: continue count += 1 - displayer.show(changenode=n) + displayer.show(other[n]) finally: if hasattr(other, 'close'): other.close() @@ -1867,7 +1867,6 @@ displayer = cmdutil.show_changeset(ui, repo, opts, True, matchfn) for st, rev, fns in changeiter: if st == 'add': - changenode = repo.changelog.node(rev) parents = [p for p in repo.changelog.parentrevs(rev) if p != nullrev] if opts.get('no_merges') and len(parents) == 2: @@ -1913,7 +1912,7 @@ rename = getrenamed(fn, rev) if rename: copies.append((fn, rename[0])) - displayer.show(rev, changenode, copies=copies) + displayer.show(context.changectx(repo, rev), copies=copies) elif st == 'iter': if count == limit: break if displayer.flush(rev): @@ -2026,7 +2025,7 @@ if opts.get('no_merges') and len(parents) == 2: continue count += 1 - displayer.show(changenode=n) + displayer.show(repo[n]) def parents(ui, repo, file_=None, **opts): """show the parents of the working dir or revision @@ -2066,7 +2065,7 @@ displayer = cmdutil.show_changeset(ui, repo, opts) for n in p: if n != nullid: - displayer.show(changenode=n) + displayer.show(repo[n]) def paths(ui, repo, search=None): """show definition of symbolic path names @@ -2842,7 +2841,7 @@ that repository becomes the current tip. The "tip" tag is special and cannot be renamed or assigned to a different changeset. """ - cmdutil.show_changeset(ui, repo, opts).show(len(repo) - 1) + cmdutil.show_changeset(ui, repo, opts).show(repo[len(repo) - 1]) def unbundle(ui, repo, fname1, *fnames, **opts): """apply one or more changegroup files