diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -9,7 +9,7 @@ from demandload import demandload from node import * from i18n import gettext as _ demandload(globals(), "os re sys signal imp urllib pdb shlex") -demandload(globals(), "fancyopts ui hg util lock revlog templater bundlerepo") +demandload(globals(), "fancyopts ui hg util lock revlog bundlerepo") demandload(globals(), "difflib patch tempfile time") demandload(globals(), "traceback errno version atexit bz2") demandload(globals(), "archival changegroup cmdutil hgweb.server sshserver") @@ -295,130 +295,6 @@ def write_bundle(cg, filename=None, comp if cleanup is not None: os.unlink(cleanup) -class changeset_printer(object): - '''show changeset information when templating not requested.''' - - def __init__(self, ui, repo): - self.ui = ui - self.repo = repo - - def show(self, rev=0, changenode=None, brinfo=None, copies=None): - '''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) - - if self.ui.quiet: - self.ui.write("%d:%s\n" % (rev, short(changenode))) - return - - changes = log.read(changenode) - date = util.datestr(changes[2]) - extra = changes[5] - branch = extra.get("branch") - - hexfunc = self.ui.debugflag and hex or short - - parents = log.parentrevs(rev) - if not self.ui.debugflag: - if parents[1] == nullrev: - if parents[0] >= rev - 1: - parents = [] - else: - parents = [parents[0]] - parents = [(p, hexfunc(log.node(p))) for p in parents] - - self.ui.write(_("changeset: %d:%s\n") % (rev, hexfunc(changenode))) - - if branch: - self.ui.write(_("branch: %s\n") % branch) - for tag in self.repo.nodetags(changenode): - self.ui.write(_("tag: %s\n") % tag) - for parent in parents: - self.ui.write(_("parent: %d:%s\n") % parent) - - if brinfo and changenode in brinfo: - br = brinfo[changenode] - self.ui.write(_("branch: %s\n") % " ".join(br)) - - if self.ui.debugflag: - self.ui.write(_("manifest: %d:%s\n") % - (self.repo.manifest.rev(changes[0]), hex(changes[0]))) - self.ui.write(_("user: %s\n") % changes[1]) - self.ui.write(_("date: %s\n") % date) - - if self.ui.debugflag: - files = self.repo.status(log.parents(changenode)[0], changenode)[:3] - for key, value in zip([_("files:"), _("files+:"), _("files-:")], - files): - if value: - self.ui.write("%-12s %s\n" % (key, " ".join(value))) - elif changes[3] and self.ui.verbose: - self.ui.write(_("files: %s\n") % " ".join(changes[3])) - if copies and self.ui.verbose: - copies = ['%s (%s)' % c for c in copies] - self.ui.write(_("copies: %s\n") % ' '.join(copies)) - - if extra and self.ui.debugflag: - extraitems = extra.items() - extraitems.sort() - for key, value in extraitems: - self.ui.write(_("extra: %s=%s\n") - % (key, value.encode('string_escape'))) - - description = changes[4].strip() - if description: - if self.ui.verbose: - self.ui.write(_("description:\n")) - self.ui.write(description) - self.ui.write("\n\n") - else: - self.ui.write(_("summary: %s\n") % - description.splitlines()[0]) - self.ui.write("\n") - -def show_changeset(ui, repo, opts): - """show one changeset using template or regular display. - - Display format will be the first non-empty hit of: - 1. option 'template' - 2. option 'style' - 3. [ui] setting 'logtemplate' - 4. [ui] setting 'style' - If all of these values are either the unset or the empty string, - regular display via changeset_printer() is done. - """ - # options - tmpl = opts.get('template') - mapfile = None - if tmpl: - tmpl = templater.parsestring(tmpl, quoted=False) - else: - mapfile = opts.get('style') - # ui settings - if not mapfile: - tmpl = ui.config('ui', 'logtemplate') - if tmpl: - tmpl = templater.parsestring(tmpl) - else: - mapfile = ui.config('ui', 'style') - - if tmpl or mapfile: - if mapfile: - if not os.path.split(mapfile)[0]: - mapname = (templater.templatepath('map-cmdline.' + mapfile) - or templater.templatepath(mapfile)) - if mapname: mapfile = mapname - try: - t = templater.changeset_templater(ui, repo, mapfile) - except SyntaxError, inst: - raise util.Abort(inst.args[0]) - if tmpl: t.use_template(tmpl) - return t - return changeset_printer(ui, repo) - def setremoteconfig(ui, opts): "copy remote options to ui tree" if opts.get('ssh'): @@ -1563,7 +1439,7 @@ def heads(ui, repo, **opts): ui.warn(_("the --branches option is deprecated, " "please use 'hg branches' instead\n")) br = repo.branchlookup(heads) - displayer = show_changeset(ui, repo, opts) + displayer = cmdutil.show_changeset(ui, repo, opts) for n in heads: displayer.show(changenode=n, brinfo=br) @@ -1710,7 +1586,7 @@ def incoming(ui, repo, source="default", o = other.changelog.nodesbetween(incoming, revs)[0] if opts['newest_first']: o.reverse() - displayer = show_changeset(ui, other, opts) + displayer = cmdutil.show_changeset(ui, other, opts) for n in o: parents = [p for p in other.changelog.parents(n) if p != nullid] if opts['no_merges'] and len(parents) == 2: @@ -1879,7 +1755,7 @@ def log(ui, repo, *pats, **opts): return ncache[fn].get(dcache[1][fn]) return None - displayer = show_changeset(ui, repo, opts) + displayer = cmdutil.show_changeset(ui, repo, opts) for st, rev, fns in changeiter: if st == 'window': du = dui(ui) @@ -2015,7 +1891,7 @@ def outgoing(ui, repo, dest=None, **opts o = repo.changelog.nodesbetween(o, revs)[0] if opts['newest_first']: o.reverse() - displayer = show_changeset(ui, repo, opts) + displayer = cmdutil.show_changeset(ui, repo, opts) for n in o: parents = [p for p in repo.changelog.parents(n) if p != nullid] if opts['no_merges'] and len(parents) == 2: @@ -2056,7 +1932,7 @@ def parents(ui, repo, file_=None, rev=No ui.warn(_("the --branches option is deprecated, " "please use 'hg branches' instead\n")) br = repo.branchlookup(p) - displayer = show_changeset(ui, repo, opts) + displayer = cmdutil.show_changeset(ui, repo, opts) for n in p: if n != nullid: displayer.show(changenode=n, brinfo=br) @@ -2683,7 +2559,7 @@ def tip(ui, repo, **opts): ui.warn(_("the --branches option is deprecated, " "please use 'hg branches' instead\n")) br = repo.branchlookup([n]) - show_changeset(ui, repo, opts).show(changenode=n, brinfo=br) + cmdutil.show_changeset(ui, repo, opts).show(changenode=n, brinfo=br) if opts['patch']: patch.diff(repo, repo.changelog.parents(n)[0], n) @@ -2752,7 +2628,8 @@ def _lookup(repo, node, branch=None): if len(found) > 1: repo.ui.warn(_("Found multiple heads for %s\n") % branch) for x in found: - show_changeset(ui, repo, {}).show(changenode=x, brinfo=br) + cmdutil.show_changeset(ui, repo, {}).show( + changenode=x, brinfo=br) raise util.Abort("") if len(found) == 1: node = found[0]