mercurial/commands.py
changeset 3643 b4ad640a3bcf
parent 3631 770c4fc03b8e
child 3645 b984dcb1df71
--- a/mercurial/commands.py	Mon Nov 13 13:26:57 2006 -0600
+++ b/mercurial/commands.py	Mon Nov 13 13:26:57 2006 -0600
@@ -9,7 +9,7 @@
 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 @@
         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 @@
         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 @@
         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 @@
             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 @@
     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 @@
         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 @@
         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 @@
         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]