comparison mercurial/localrepo.py @ 5814:dd5a501cb97f

restore branch after rollback (issue 902)
author Alexandre Vassalotti <mercurial-bugs@selenic.com>
date Mon, 07 Jan 2008 15:26:12 -0600
parents 41ca0e20117e
children e7127f669edb
comparison
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: