Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/localrepo.py @ 15455:c6f87bdab2a1
phases: add rollback support
author | Pierre-Yves David <pierre-yves.david@ens-lyon.org> |
---|---|
date | Mon, 07 Nov 2011 12:27:25 +0100 |
parents | 5a7dde5adec8 |
children | abcaaf51d568 |
comparison
equal
deleted
inserted
replaced
15454:5a7dde5adec8 | 15455:c6f87bdab2a1 |
---|---|
756 bkname = self.join('bookmarks') | 756 bkname = self.join('bookmarks') |
757 if os.path.exists(bkname): | 757 if os.path.exists(bkname): |
758 util.copyfile(bkname, self.join('journal.bookmarks')) | 758 util.copyfile(bkname, self.join('journal.bookmarks')) |
759 else: | 759 else: |
760 self.opener.write('journal.bookmarks', '') | 760 self.opener.write('journal.bookmarks', '') |
761 phasesname = self.sjoin('phaseroots') | |
762 if os.path.exists(phasesname): | |
763 util.copyfile(phasesname, self.sjoin('journal.phaseroots')) | |
764 else: | |
765 self.sopener.write('journal.phaseroots', '') | |
761 | 766 |
762 return (self.sjoin('journal'), self.join('journal.dirstate'), | 767 return (self.sjoin('journal'), self.join('journal.dirstate'), |
763 self.join('journal.branch'), self.join('journal.desc'), | 768 self.join('journal.branch'), self.join('journal.desc'), |
764 self.join('journal.bookmarks')) | 769 self.join('journal.bookmarks'), |
770 self.sjoin('journal.phaseroots')) | |
765 | 771 |
766 def recover(self): | 772 def recover(self): |
767 lock = self.lock() | 773 lock = self.lock() |
768 try: | 774 try: |
769 if os.path.exists(self.sjoin("journal")): | 775 if os.path.exists(self.sjoin("journal")): |
824 parents = self.dirstate.parents() | 830 parents = self.dirstate.parents() |
825 transaction.rollback(self.sopener, self.sjoin('undo'), ui.warn) | 831 transaction.rollback(self.sopener, self.sjoin('undo'), ui.warn) |
826 if os.path.exists(self.join('undo.bookmarks')): | 832 if os.path.exists(self.join('undo.bookmarks')): |
827 util.rename(self.join('undo.bookmarks'), | 833 util.rename(self.join('undo.bookmarks'), |
828 self.join('bookmarks')) | 834 self.join('bookmarks')) |
835 if os.path.exists(self.sjoin('undo.phaseroots')): | |
836 util.rename(self.sjoin('undo.phaseroots'), | |
837 self.sjoin('phaseroots')) | |
829 self.invalidate() | 838 self.invalidate() |
830 | 839 |
831 parentgone = (parents[0] not in self.changelog.nodemap or | 840 parentgone = (parents[0] not in self.changelog.nodemap or |
832 parents[1] not in self.changelog.nodemap) | 841 parents[1] not in self.changelog.nodemap) |
833 if parentgone: | 842 if parentgone: |