equal
deleted
inserted
replaced
804 tr = self._transref and self._transref() or None |
804 tr = self._transref and self._transref() or None |
805 if tr and tr.running(): |
805 if tr and tr.running(): |
806 return tr.nest() |
806 return tr.nest() |
807 |
807 |
808 # abort here if the journal already exists |
808 # abort here if the journal already exists |
809 if os.path.exists(self.sjoin("journal")): |
809 if self.svfs.exists("journal"): |
810 raise error.RepoError( |
810 raise error.RepoError( |
811 _("abandoned transaction found - run hg recover")) |
811 _("abandoned transaction found - run hg recover")) |
812 |
812 |
813 self._writejournal(desc) |
813 self._writejournal(desc) |
814 renames = [(x, undoname(x)) for x in self._journalfiles()] |
814 renames = [(x, undoname(x)) for x in self._journalfiles()] |
842 self.sopener.tryread("phaseroots")) |
842 self.sopener.tryread("phaseroots")) |
843 |
843 |
844 def recover(self): |
844 def recover(self): |
845 lock = self.lock() |
845 lock = self.lock() |
846 try: |
846 try: |
847 if os.path.exists(self.sjoin("journal")): |
847 if self.svfs.exists("journal"): |
848 self.ui.status(_("rolling back interrupted transaction\n")) |
848 self.ui.status(_("rolling back interrupted transaction\n")) |
849 transaction.rollback(self.sopener, self.sjoin("journal"), |
849 transaction.rollback(self.sopener, self.sjoin("journal"), |
850 self.ui.warn) |
850 self.ui.warn) |
851 self.invalidate() |
851 self.invalidate() |
852 return True |
852 return True |
859 def rollback(self, dryrun=False, force=False): |
859 def rollback(self, dryrun=False, force=False): |
860 wlock = lock = None |
860 wlock = lock = None |
861 try: |
861 try: |
862 wlock = self.wlock() |
862 wlock = self.wlock() |
863 lock = self.lock() |
863 lock = self.lock() |
864 if os.path.exists(self.sjoin("undo")): |
864 if self.svfs.exists("undo"): |
865 return self._rollback(dryrun, force) |
865 return self._rollback(dryrun, force) |
866 else: |
866 else: |
867 self.ui.warn(_("no rollback information available\n")) |
867 self.ui.warn(_("no rollback information available\n")) |
868 return 1 |
868 return 1 |
869 finally: |
869 finally: |
901 return 0 |
901 return 0 |
902 |
902 |
903 parents = self.dirstate.parents() |
903 parents = self.dirstate.parents() |
904 self.destroying() |
904 self.destroying() |
905 transaction.rollback(self.sopener, self.sjoin('undo'), ui.warn) |
905 transaction.rollback(self.sopener, self.sjoin('undo'), ui.warn) |
906 if os.path.exists(self.join('undo.bookmarks')): |
906 if self.vfs.exists('undo.bookmarks'): |
907 util.rename(self.join('undo.bookmarks'), |
907 util.rename(self.join('undo.bookmarks'), |
908 self.join('bookmarks')) |
908 self.join('bookmarks')) |
909 if os.path.exists(self.sjoin('undo.phaseroots')): |
909 if self.svfs.exists('undo.phaseroots'): |
910 util.rename(self.sjoin('undo.phaseroots'), |
910 util.rename(self.sjoin('undo.phaseroots'), |
911 self.sjoin('phaseroots')) |
911 self.sjoin('phaseroots')) |
912 self.invalidate() |
912 self.invalidate() |
913 |
913 |
914 parentgone = (parents[0] not in self.changelog.nodemap or |
914 parentgone = (parents[0] not in self.changelog.nodemap or |