Mercurial > public > mercurial-scm > hg-stable
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: |