Mercurial > public > mercurial-scm > hg
comparison mercurial/localrepo.py @ 15097:cda7a87c1871
rollback: improve readability; clarify that the return value is an int.
author | Greg Ward <greg-hg@gerg.ca> |
---|---|
date | Sun, 11 Sep 2011 21:21:58 -0400 |
parents | 774da7121fc9 |
children | a21ccf4412d5 |
comparison
equal
deleted
inserted
replaced
15096:868282fa29d8 | 15097:cda7a87c1871 |
---|---|
758 wlock = lock = None | 758 wlock = lock = None |
759 try: | 759 try: |
760 wlock = self.wlock() | 760 wlock = self.wlock() |
761 lock = self.lock() | 761 lock = self.lock() |
762 if os.path.exists(self.sjoin("undo")): | 762 if os.path.exists(self.sjoin("undo")): |
763 try: | 763 return self._rollback(dryrun) |
764 args = self.opener.read("undo.desc").splitlines() | |
765 if len(args) >= 3 and self.ui.verbose: | |
766 desc = _("repository tip rolled back to revision %s" | |
767 " (undo %s: %s)\n") % ( | |
768 int(args[0]) - 1, args[1], args[2]) | |
769 elif len(args) >= 2: | |
770 desc = _("repository tip rolled back to revision %s" | |
771 " (undo %s)\n") % ( | |
772 int(args[0]) - 1, args[1]) | |
773 except IOError: | |
774 desc = _("rolling back unknown transaction\n") | |
775 self.ui.status(desc) | |
776 if dryrun: | |
777 return | |
778 transaction.rollback(self.sopener, self.sjoin("undo"), | |
779 self.ui.warn) | |
780 util.rename(self.join("undo.dirstate"), self.join("dirstate")) | |
781 if os.path.exists(self.join('undo.bookmarks')): | |
782 util.rename(self.join('undo.bookmarks'), | |
783 self.join('bookmarks')) | |
784 try: | |
785 branch = self.opener.read("undo.branch") | |
786 self.dirstate.setbranch(branch) | |
787 except IOError: | |
788 self.ui.warn(_("named branch could not be reset, " | |
789 "current branch is still: %s\n") | |
790 % self.dirstate.branch()) | |
791 self.invalidate() | |
792 self.dirstate.invalidate() | |
793 self.destroyed() | |
794 parents = tuple([p.rev() for p in self.parents()]) | |
795 if len(parents) > 1: | |
796 self.ui.status(_("working directory now based on " | |
797 "revisions %d and %d\n") % parents) | |
798 else: | |
799 self.ui.status(_("working directory now based on " | |
800 "revision %d\n") % parents) | |
801 else: | 764 else: |
802 self.ui.warn(_("no rollback information available\n")) | 765 self.ui.warn(_("no rollback information available\n")) |
803 return 1 | 766 return 1 |
804 finally: | 767 finally: |
805 release(lock, wlock) | 768 release(lock, wlock) |
769 | |
770 def _rollback(self, dryrun): | |
771 try: | |
772 args = self.opener.read("undo.desc").splitlines() | |
773 if len(args) >= 3 and self.ui.verbose: | |
774 desc = _("repository tip rolled back to revision %s" | |
775 " (undo %s: %s)\n") % ( | |
776 int(args[0]) - 1, args[1], args[2]) | |
777 elif len(args) >= 2: | |
778 desc = _("repository tip rolled back to revision %s" | |
779 " (undo %s)\n") % ( | |
780 int(args[0]) - 1, args[1]) | |
781 except IOError: | |
782 desc = _("rolling back unknown transaction\n") | |
783 self.ui.status(desc) | |
784 if dryrun: | |
785 return 0 | |
786 transaction.rollback(self.sopener, self.sjoin("undo"), | |
787 self.ui.warn) | |
788 util.rename(self.join("undo.dirstate"), self.join("dirstate")) | |
789 if os.path.exists(self.join('undo.bookmarks')): | |
790 util.rename(self.join('undo.bookmarks'), | |
791 self.join('bookmarks')) | |
792 try: | |
793 branch = self.opener.read("undo.branch") | |
794 self.dirstate.setbranch(branch) | |
795 except IOError: | |
796 self.ui.warn(_("named branch could not be reset, " | |
797 "current branch is still: %s\n") | |
798 % self.dirstate.branch()) | |
799 self.invalidate() | |
800 self.dirstate.invalidate() | |
801 self.destroyed() | |
802 parents = tuple([p.rev() for p in self.parents()]) | |
803 if len(parents) > 1: | |
804 self.ui.status(_("working directory now based on " | |
805 "revisions %d and %d\n") % parents) | |
806 else: | |
807 self.ui.status(_("working directory now based on " | |
808 "revision %d\n") % parents) | |
809 return 0 | |
806 | 810 |
807 def invalidatecaches(self): | 811 def invalidatecaches(self): |
808 try: | 812 try: |
809 delattr(self, '_tagscache') | 813 delattr(self, '_tagscache') |
810 except AttributeError: | 814 except AttributeError: |