##// END OF EJS Templates
phases: add rollback support
Pierre-Yves David -
r15455:c6f87bda default
parent child Browse files
Show More
@@ -758,10 +758,16 b' class localrepository(repo.repository):'
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()
@@ -826,6 +832,9 b' class localrepository(repo.repository):'
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
@@ -80,6 +80,7 b' Non store repo:'
80 .hg/undo.branch
80 .hg/undo.branch
81 .hg/undo.desc
81 .hg/undo.desc
82 .hg/undo.dirstate
82 .hg/undo.dirstate
83 .hg/undo.phaseroots
83 $ cd ..
84 $ cd ..
84
85
85 Non fncache repo:
86 Non fncache repo:
@@ -103,6 +104,7 b' Non fncache repo:'
103 .hg/store/data/tst.d.hg
104 .hg/store/data/tst.d.hg
104 .hg/store/data/tst.d.hg/_foo.i
105 .hg/store/data/tst.d.hg/_foo.i
105 .hg/store/undo
106 .hg/store/undo
107 .hg/store/undo.phaseroots
106 .hg/undo.bookmarks
108 .hg/undo.bookmarks
107 .hg/undo.branch
109 .hg/undo.branch
108 .hg/undo.desc
110 .hg/undo.desc
@@ -48,6 +48,7 b' Prepare repo r1:'
48 1 r1/.hg/store/data/f1.i
48 1 r1/.hg/store/data/f1.i
49 1 r1/.hg/store/fncache
49 1 r1/.hg/store/fncache
50 1 r1/.hg/store/undo
50 1 r1/.hg/store/undo
51 1 r1/.hg/store/undo.phaseroots
51
52
52
53
53 Create hardlinked clone r2:
54 Create hardlinked clone r2:
@@ -76,6 +77,7 b' Repos r1 and r2 should now contain hardl'
76 2 r1/.hg/store/data/f1.i
77 2 r1/.hg/store/data/f1.i
77 2 r1/.hg/store/fncache
78 2 r1/.hg/store/fncache
78 1 r1/.hg/store/undo
79 1 r1/.hg/store/undo
80 1 r1/.hg/store/undo.phaseroots
79
81
80 $ nlinksdir r2/.hg/store
82 $ nlinksdir r2/.hg/store
81 2 r2/.hg/store/00changelog.i
83 2 r2/.hg/store/00changelog.i
@@ -93,6 +95,7 b' Repo r3 should not be hardlinked:'
93 1 r3/.hg/store/data/f1.i
95 1 r3/.hg/store/data/f1.i
94 1 r3/.hg/store/fncache
96 1 r3/.hg/store/fncache
95 1 r3/.hg/store/undo
97 1 r3/.hg/store/undo
98 1 r3/.hg/store/undo.phaseroots
96
99
97
100
98 Create a non-inlined filelog in r3:
101 Create a non-inlined filelog in r3:
@@ -113,6 +116,7 b' Create a non-inlined filelog in r3:'
113 1 r3/.hg/store/data/f1.i
116 1 r3/.hg/store/data/f1.i
114 1 r3/.hg/store/fncache
117 1 r3/.hg/store/fncache
115 1 r3/.hg/store/undo
118 1 r3/.hg/store/undo
119 1 r3/.hg/store/undo.phaseroots
116
120
117 Push to repo r1 should break up most hardlinks in r2:
121 Push to repo r1 should break up most hardlinks in r2:
118
122
@@ -196,6 +200,7 b' r4 has hardlinks in the working dir (not'
196 2 r4/.hg/store/data/f1.i
200 2 r4/.hg/store/data/f1.i
197 2 r4/.hg/store/fncache
201 2 r4/.hg/store/fncache
198 2 r4/.hg/store/undo
202 2 r4/.hg/store/undo
203 2 r4/.hg/store/undo.phaseroots
199 2 r4/.hg/undo.bookmarks
204 2 r4/.hg/undo.bookmarks
200 2 r4/.hg/undo.branch
205 2 r4/.hg/undo.branch
201 2 r4/.hg/undo.desc
206 2 r4/.hg/undo.desc
@@ -225,6 +230,7 b' Update back to revision 11 in r4 should '
225 2 r4/.hg/store/data/f1.i
230 2 r4/.hg/store/data/f1.i
226 2 r4/.hg/store/fncache
231 2 r4/.hg/store/fncache
227 2 r4/.hg/store/undo
232 2 r4/.hg/store/undo
233 2 r4/.hg/store/undo.phaseroots
228 2 r4/.hg/undo.bookmarks
234 2 r4/.hg/undo.bookmarks
229 2 r4/.hg/undo.branch
235 2 r4/.hg/undo.branch
230 2 r4/.hg/undo.desc
236 2 r4/.hg/undo.desc
@@ -17,4 +17,4 b' Test hangup signal in the middle of tran'
17 rollback completed
17 rollback completed
18 killed!
18 killed!
19 $ echo .hg/* .hg/store/*
19 $ echo .hg/* .hg/store/*
20 .hg/00changelog.i .hg/journal.bookmarks .hg/journal.branch .hg/journal.desc .hg/journal.dirstate .hg/requires .hg/store .hg/store/00changelog.i .hg/store/00changelog.i.a
20 .hg/00changelog.i .hg/journal.bookmarks .hg/journal.branch .hg/journal.desc .hg/journal.dirstate .hg/requires .hg/store .hg/store/00changelog.i .hg/store/00changelog.i.a .hg/store/journal.phaseroots
@@ -77,6 +77,7 b' new directories are setgid'
77 00660 ./.hg/store/data/foo.i
77 00660 ./.hg/store/data/foo.i
78 00660 ./.hg/store/fncache
78 00660 ./.hg/store/fncache
79 00660 ./.hg/store/undo
79 00660 ./.hg/store/undo
80 00660 ./.hg/store/undo.phaseroots
80 00660 ./.hg/undo.bookmarks
81 00660 ./.hg/undo.bookmarks
81 00660 ./.hg/undo.branch
82 00660 ./.hg/undo.branch
82 00660 ./.hg/undo.desc
83 00660 ./.hg/undo.desc
@@ -118,6 +119,7 b' group can still write everything'
118 00660 ../push/.hg/store/data/foo.i
119 00660 ../push/.hg/store/data/foo.i
119 00660 ../push/.hg/store/fncache
120 00660 ../push/.hg/store/fncache
120 00660 ../push/.hg/store/undo
121 00660 ../push/.hg/store/undo
122 00660 ../push/.hg/store/undo.phaseroots
121 00660 ../push/.hg/undo.bookmarks
123 00660 ../push/.hg/undo.bookmarks
122 00660 ../push/.hg/undo.branch
124 00660 ../push/.hg/undo.branch
123 00660 ../push/.hg/undo.desc
125 00660 ../push/.hg/undo.desc
General Comments 0
You need to be logged in to leave comments. Login now