mercurial/cmdutil.py
changeset 7369 87158be081b8
parent 7361 9fe97eea5510
child 7404 07cb58b8c843
--- 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):