##// END OF EJS Templates
cmdutil: use change contexts for cset-printer and cset-templater
Dirkjan Ochtman -
r7369:87158be0 default
parent child Browse files
Show More
@@ -291,7 +291,7 b' class bugzilla(object):'
291 tmpl = templater.parsestring(tmpl, quoted=False)
291 tmpl = templater.parsestring(tmpl, quoted=False)
292 t.use_template(tmpl)
292 t.use_template(tmpl)
293 self.ui.pushbuffer()
293 self.ui.pushbuffer()
294 t.show(changenode=ctx.node(), changes=ctx.changeset(),
294 t.show(ctx, changes=ctx.changeset(),
295 bug=str(bugid),
295 bug=str(bugid),
296 hgweb=self.ui.config('web', 'baseurl'),
296 hgweb=self.ui.config('web', 'baseurl'),
297 root=self.repo.root,
297 root=self.repo.root,
@@ -28,8 +28,8 b' def children(ui, repo, file_=None, **opt'
28 ctx = repo[rev]
28 ctx = repo[rev]
29
29
30 displayer = cmdutil.show_changeset(ui, repo, opts)
30 displayer = cmdutil.show_changeset(ui, repo, opts)
31 for node in [cp.node() for cp in ctx.children()]:
31 for cctx in ctx.children():
32 displayer.show(changenode=node)
32 displayer.show(cctx)
33
33
34
34
35 cmdtable = {
35 cmdtable = {
@@ -63,7 +63,7 b' def countrate(ui, repo, amap, *pats, **o'
63 tmpl = maketemplater(ui, repo, tmpl)
63 tmpl = maketemplater(ui, repo, tmpl)
64 def getkey(ctx):
64 def getkey(ctx):
65 ui.pushbuffer()
65 ui.pushbuffer()
66 tmpl.show(changenode=ctx.node())
66 tmpl.show(ctx)
67 return ui.popbuffer()
67 return ui.popbuffer()
68
68
69 count = pct = 0
69 count = pct = 0
@@ -325,7 +325,7 b' def graphlog(ui, repo, path=None, **opts'
325 # log_strings is the list of all log strings to draw alongside
325 # log_strings is the list of all log strings to draw alongside
326 # the graph.
326 # the graph.
327 ui.pushbuffer()
327 ui.pushbuffer()
328 cs_printer.show(rev, node)
328 cs_printer.show(repo[rev])
329 log_strings = ui.popbuffer().split("\n")[:-1]
329 log_strings = ui.popbuffer().split("\n")[:-1]
330 if node in repo_parents:
330 if node in repo_parents:
331 node_ch = "@"
331 node_ch = "@"
@@ -151,7 +151,7 b' class kwtemplater(object):'
151 kw = mobj.group(1)
151 kw = mobj.group(1)
152 self.ct.use_template(self.templates[kw])
152 self.ct.use_template(self.templates[kw])
153 self.ui.pushbuffer()
153 self.ui.pushbuffer()
154 self.ct.show(changenode=node, root=self.repo.root, file=path)
154 self.ct.show(self.repo[node], root=self.repo.root, file=path)
155 ekw = templatefilters.firstline(self.ui.popbuffer())
155 ekw = templatefilters.firstline(self.ui.popbuffer())
156 return '$%s: %s $' % (kw, ekw)
156 return '$%s: %s $' % (kw, ekw)
157 return subfunc(kwsub, data)
157 return subfunc(kwsub, data)
@@ -165,7 +165,7 b' class notifier(object):'
165 def node(self, node):
165 def node(self, node):
166 '''format one changeset.'''
166 '''format one changeset.'''
167
167
168 self.t.show(changenode=node, changes=self.repo.changelog.read(node),
168 self.t.show(self.repo[node], changes=self.repo.changelog.read(node),
169 baseurl=self.ui.config('web', 'baseurl'),
169 baseurl=self.ui.config('web', 'baseurl'),
170 root=self.repo.root,
170 root=self.repo.root,
171 webroot=self.root)
171 webroot=self.root)
@@ -398,7 +398,7 b' def browserevs(ui, repo, nodes, opts):'
398 transplants = []
398 transplants = []
399 merges = []
399 merges = []
400 for node in nodes:
400 for node in nodes:
401 displayer.show(changenode=node)
401 displayer.show(repo[node])
402 action = None
402 action = None
403 while not action:
403 while not action:
404 action = ui.prompt(_('apply changeset? [ynmpcq?]:'))
404 action = ui.prompt(_('apply changeset? [ynmpcq?]:'))
@@ -596,26 +596,24 b' class changeset_printer(object):'
596 return 1
596 return 1
597 return 0
597 return 0
598
598
599 def show(self, rev=0, changenode=None, copies=(), **props):
599 def show(self, ctx, copies=(), **props):
600 if self.buffered:
600 if self.buffered:
601 self.ui.pushbuffer()
601 self.ui.pushbuffer()
602 self._show(rev, changenode, copies, props)
602 self._show(ctx, copies, props)
603 self.hunk[rev] = self.ui.popbuffer()
603 self.hunk[ctx.rev()] = self.ui.popbuffer()
604 else:
604 else:
605 self._show(rev, changenode, copies, props)
605 self._show(ctx, copies, props)
606
606
607 def _show(self, rev, changenode, copies, props):
607 def _show(self, ctx, copies, props):
608 '''show a single changeset or file revision'''
608 '''show a single changeset or file revision'''
609 log = self.repo.changelog
609 changenode = ctx.node()
610 if changenode is None:
610 rev = ctx.rev()
611 changenode = log.node(rev)
612 elif not rev:
613 rev = log.rev(changenode)
614
611
615 if self.ui.quiet:
612 if self.ui.quiet:
616 self.ui.write("%d:%s\n" % (rev, short(changenode)))
613 self.ui.write("%d:%s\n" % (rev, short(changenode)))
617 return
614 return
618
615
616 log = self.repo.changelog
619 changes = log.read(changenode)
617 changes = log.read(changenode)
620 date = util.datestr(changes[2])
618 date = util.datestr(changes[2])
621 extra = changes[5]
619 extra = changes[5]
@@ -716,14 +714,12 b' class changeset_templater(changeset_prin'
716 '''set template string to use'''
714 '''set template string to use'''
717 self.t.cache['changeset'] = t
715 self.t.cache['changeset'] = t
718
716
719 def _show(self, rev, changenode, copies, props):
717 def _show(self, ctx, copies, props):
720 '''show a single changeset or file revision'''
718 '''show a single changeset or file revision'''
719 changenode = ctx.node()
720 rev = ctx.rev()
721
721 log = self.repo.changelog
722 log = self.repo.changelog
722 if changenode is None:
723 changenode = log.node(rev)
724 elif not rev:
725 rev = log.rev(changenode)
726
727 changes = log.read(changenode)
723 changes = log.read(changenode)
728
724
729 def showlist(name, values, plural=None, **args):
725 def showlist(name, values, plural=None, **args):
@@ -9,7 +9,7 b' from node import hex, nullid, nullrev, s'
9 from repo import RepoError, NoCapability
9 from repo import RepoError, NoCapability
10 from i18n import _, gettext
10 from i18n import _, gettext
11 import os, re, sys
11 import os, re, sys
12 import hg, util, revlog, bundlerepo, extensions, copies
12 import hg, util, revlog, bundlerepo, extensions, copies, context
13 import difflib, patch, time, help, mdiff, tempfile, url
13 import difflib, patch, time, help, mdiff, tempfile, url
14 import version
14 import version
15 import archival, changegroup, cmdutil, hgweb.server, sshserver, hbisect
15 import archival, changegroup, cmdutil, hgweb.server, sshserver, hbisect
@@ -288,13 +288,13 b' def bisect(ui, repo, rev=None, extra=Non'
288 if len(nodes) == 1:
288 if len(nodes) == 1:
289 # narrowed it down to a single revision
289 # narrowed it down to a single revision
290 ui.write(_("The first %s revision is:\n") % transition)
290 ui.write(_("The first %s revision is:\n") % transition)
291 displayer.show(changenode=nodes[0])
291 displayer.show(repo[nodes[0]])
292 else:
292 else:
293 # multiple possible revisions
293 # multiple possible revisions
294 ui.write(_("Due to skipped revisions, the first "
294 ui.write(_("Due to skipped revisions, the first "
295 "%s revision could be any of:\n") % transition)
295 "%s revision could be any of:\n") % transition)
296 for n in nodes:
296 for n in nodes:
297 displayer.show(changenode=n)
297 displayer.show(repo[n])
298
298
299 def check_state(state, interactive=True):
299 def check_state(state, interactive=True):
300 if not state['good'] or not state['bad']:
300 if not state['good'] or not state['bad']:
@@ -1270,7 +1270,7 b' def heads(ui, repo, *branchrevs, **opts)'
1270 return 1
1270 return 1
1271 displayer = cmdutil.show_changeset(ui, repo, opts)
1271 displayer = cmdutil.show_changeset(ui, repo, opts)
1272 for n in heads:
1272 for n in heads:
1273 displayer.show(changenode=n)
1273 displayer.show(repo[n])
1274
1274
1275 def help_(ui, name=None, with_version=False):
1275 def help_(ui, name=None, with_version=False):
1276 """show help for a given topic or a help overview
1276 """show help for a given topic or a help overview
@@ -1729,7 +1729,7 b' def incoming(ui, repo, source="default",'
1729 if opts.get('no_merges') and len(parents) == 2:
1729 if opts.get('no_merges') and len(parents) == 2:
1730 continue
1730 continue
1731 count += 1
1731 count += 1
1732 displayer.show(changenode=n)
1732 displayer.show(other[n])
1733 finally:
1733 finally:
1734 if hasattr(other, 'close'):
1734 if hasattr(other, 'close'):
1735 other.close()
1735 other.close()
@@ -1867,7 +1867,6 b' def log(ui, repo, *pats, **opts):'
1867 displayer = cmdutil.show_changeset(ui, repo, opts, True, matchfn)
1867 displayer = cmdutil.show_changeset(ui, repo, opts, True, matchfn)
1868 for st, rev, fns in changeiter:
1868 for st, rev, fns in changeiter:
1869 if st == 'add':
1869 if st == 'add':
1870 changenode = repo.changelog.node(rev)
1871 parents = [p for p in repo.changelog.parentrevs(rev)
1870 parents = [p for p in repo.changelog.parentrevs(rev)
1872 if p != nullrev]
1871 if p != nullrev]
1873 if opts.get('no_merges') and len(parents) == 2:
1872 if opts.get('no_merges') and len(parents) == 2:
@@ -1913,7 +1912,7 b' def log(ui, repo, *pats, **opts):'
1913 rename = getrenamed(fn, rev)
1912 rename = getrenamed(fn, rev)
1914 if rename:
1913 if rename:
1915 copies.append((fn, rename[0]))
1914 copies.append((fn, rename[0]))
1916 displayer.show(rev, changenode, copies=copies)
1915 displayer.show(context.changectx(repo, rev), copies=copies)
1917 elif st == 'iter':
1916 elif st == 'iter':
1918 if count == limit: break
1917 if count == limit: break
1919 if displayer.flush(rev):
1918 if displayer.flush(rev):
@@ -2026,7 +2025,7 b' def outgoing(ui, repo, dest=None, **opts'
2026 if opts.get('no_merges') and len(parents) == 2:
2025 if opts.get('no_merges') and len(parents) == 2:
2027 continue
2026 continue
2028 count += 1
2027 count += 1
2029 displayer.show(changenode=n)
2028 displayer.show(repo[n])
2030
2029
2031 def parents(ui, repo, file_=None, **opts):
2030 def parents(ui, repo, file_=None, **opts):
2032 """show the parents of the working dir or revision
2031 """show the parents of the working dir or revision
@@ -2066,7 +2065,7 b' def parents(ui, repo, file_=None, **opts'
2066 displayer = cmdutil.show_changeset(ui, repo, opts)
2065 displayer = cmdutil.show_changeset(ui, repo, opts)
2067 for n in p:
2066 for n in p:
2068 if n != nullid:
2067 if n != nullid:
2069 displayer.show(changenode=n)
2068 displayer.show(repo[n])
2070
2069
2071 def paths(ui, repo, search=None):
2070 def paths(ui, repo, search=None):
2072 """show definition of symbolic path names
2071 """show definition of symbolic path names
@@ -2842,7 +2841,7 b' def tip(ui, repo, **opts):'
2842 that repository becomes the current tip. The "tip" tag is special
2841 that repository becomes the current tip. The "tip" tag is special
2843 and cannot be renamed or assigned to a different changeset.
2842 and cannot be renamed or assigned to a different changeset.
2844 """
2843 """
2845 cmdutil.show_changeset(ui, repo, opts).show(len(repo) - 1)
2844 cmdutil.show_changeset(ui, repo, opts).show(repo[len(repo) - 1])
2846
2845
2847 def unbundle(ui, repo, fname1, *fnames, **opts):
2846 def unbundle(ui, repo, fname1, *fnames, **opts):
2848 """apply one or more changegroup files
2847 """apply one or more changegroup files
General Comments 0
You need to be logged in to leave comments. Login now