Mercurial > public > mercurial-scm > hg-stable
diff mercurial/localrepo.py @ 10882:f0bfe42c7b1f
rollback: add dry-run argument, emit transaction description
author | Steve Borho <steve@borho.org> |
---|---|
date | Fri, 09 Apr 2010 17:23:37 -0500 |
parents | a685011ed38e |
children | 38f2ef9c134b |
line wrap: on
line diff
--- 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"))