mercurial/localrepo.py
changeset 18947 9b82f93e3a7a
parent 18946 3d4f41eaae67
child 18948 2f05fa162316
equal deleted inserted replaced
18946:3d4f41eaae67 18947:9b82f93e3a7a
   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