mercurial/localrepo.py
changeset 10882 f0bfe42c7b1f
parent 10881 a685011ed38e
child 10886 38f2ef9c134b
--- a/mercurial/localrepo.py	Fri Apr 09 17:23:35 2010 -0500
+++ b/mercurial/localrepo.py	Fri Apr 09 17:23:37 2010 -0500
@@ -599,13 +599,25 @@
         finally:
             lock.release()
 
-    def rollback(self):
+    def rollback(self, dryrun=False):
         wlock = lock = None
         try:
             wlock = self.wlock()
             lock = self.lock()
             if os.path.exists(self.sjoin("undo")):
-                self.ui.status(_("rolling back last transaction\n"))
+                try:
+                    args = self.opener("undo.desc", "r").read().split(",")
+                    if len(args) == 3 and self.ui.verbose:
+                        desc = _("rolling back %s (%s) to revision %s\n") % (
+                                 args[1], args[2], args[0])
+                    else:
+                        desc = _("rolling back %s to revision %s\n") % (
+                                 args[1], args[0])
+                except (IOError, IndexError):
+                    desc = _("rolling back unknown transaction\n")
+                self.ui.status(desc)
+                if dryrun:
+                    return
                 transaction.rollback(self.sopener, self.sjoin("undo"),
                                      self.ui.warn)
                 util.rename(self.join("undo.dirstate"), self.join("dirstate"))