mercurial/localrepo.py
changeset 5814 dd5a501cb97f
parent 5812 41ca0e20117e
child 5865 e7127f669edb
equal deleted inserted replaced
5813:3ef279074c77 5814:dd5a501cb97f
   523         try:
   523         try:
   524             ds = self.opener("dirstate").read()
   524             ds = self.opener("dirstate").read()
   525         except IOError:
   525         except IOError:
   526             ds = ""
   526             ds = ""
   527         self.opener("journal.dirstate", "w").write(ds)
   527         self.opener("journal.dirstate", "w").write(ds)
       
   528         self.opener("journal.branch", "w").write(self.dirstate.branch())
   528 
   529 
   529         renames = [(self.sjoin("journal"), self.sjoin("undo")),
   530         renames = [(self.sjoin("journal"), self.sjoin("undo")),
   530                    (self.join("journal.dirstate"), self.join("undo.dirstate"))]
   531                    (self.join("journal.dirstate"), self.join("undo.dirstate")),
       
   532                    (self.join("journal.branch"), self.join("undo.branch"))]
   531         tr = transaction.transaction(self.ui.warn, self.sopener,
   533         tr = transaction.transaction(self.ui.warn, self.sopener,
   532                                        self.sjoin("journal"),
   534                                        self.sjoin("journal"),
   533                                        aftertrans(renames))
   535                                        aftertrans(renames))
   534         self._transref = weakref.ref(tr)
   536         self._transref = weakref.ref(tr)
   535         return tr
   537         return tr
   555             lock = self.lock()
   557             lock = self.lock()
   556             if os.path.exists(self.sjoin("undo")):
   558             if os.path.exists(self.sjoin("undo")):
   557                 self.ui.status(_("rolling back last transaction\n"))
   559                 self.ui.status(_("rolling back last transaction\n"))
   558                 transaction.rollback(self.sopener, self.sjoin("undo"))
   560                 transaction.rollback(self.sopener, self.sjoin("undo"))
   559                 util.rename(self.join("undo.dirstate"), self.join("dirstate"))
   561                 util.rename(self.join("undo.dirstate"), self.join("dirstate"))
       
   562                 branch = self.opener("undo.branch").read()
       
   563                 self.dirstate.setbranch(branch)
   560                 self.invalidate()
   564                 self.invalidate()
   561                 self.dirstate.invalidate()
   565                 self.dirstate.invalidate()
   562             else:
   566             else:
   563                 self.ui.warn(_("no rollback information available\n"))
   567                 self.ui.warn(_("no rollback information available\n"))
   564         finally:
   568         finally: