Show More
@@ -159,6 +159,31 class rebaseruntime(object): | |||
|
159 | 159 | self.keepopen = opts.get('keepopen', False) |
|
160 | 160 | self.obsoletenotrebased = {} |
|
161 | 161 | |
|
162 | def storestatus(self): | |
|
163 | """Store the current status to allow recovery""" | |
|
164 | repo = self.repo | |
|
165 | f = repo.vfs("rebasestate", "w") | |
|
166 | f.write(repo[self.originalwd].hex() + '\n') | |
|
167 | f.write(repo[self.target].hex() + '\n') | |
|
168 | f.write(repo[self.external].hex() + '\n') | |
|
169 | f.write('%d\n' % int(self.collapsef)) | |
|
170 | f.write('%d\n' % int(self.keepf)) | |
|
171 | f.write('%d\n' % int(self.keepbranchesf)) | |
|
172 | f.write('%s\n' % (self.activebookmark or '')) | |
|
173 | for d, v in self.state.iteritems(): | |
|
174 | oldrev = repo[d].hex() | |
|
175 | if v >= 0: | |
|
176 | newrev = repo[v].hex() | |
|
177 | elif v == revtodo: | |
|
178 | # To maintain format compatibility, we have to use nullid. | |
|
179 | # Please do remove this special case when upgrading the format. | |
|
180 | newrev = hex(nullid) | |
|
181 | else: | |
|
182 | newrev = v | |
|
183 | f.write("%s:%s\n" % (oldrev, newrev)) | |
|
184 | f.close() | |
|
185 | repo.ui.debug('rebase status stored\n') | |
|
186 | ||
|
162 | 187 | def restorestatus(self): |
|
163 | 188 | """Restore a previously stored status""" |
|
164 | 189 | repo = self.repo |
@@ -358,10 +383,7 class rebaseruntime(object): | |||
|
358 | 383 | self.state, |
|
359 | 384 | self.targetancestors, |
|
360 | 385 | self.obsoletenotrebased) |
|
361 | storestatus(repo, self.originalwd, self.target, | |
|
362 | self.state, self.collapsef, self.keepf, | |
|
363 | self.keepbranchesf, self.external, | |
|
364 | self.activebookmark) | |
|
386 | self.storestatus() | |
|
365 | 387 | storecollapsemsg(repo, self.collapsemsg) |
|
366 | 388 | if len(repo[None].parents()) == 2: |
|
367 | 389 | repo.ui.debug('resuming interrupted rebase\n') |
@@ -1076,31 +1098,6 def restorecollapsemsg(repo): | |||
|
1076 | 1098 | raise error.Abort(_('no rebase in progress')) |
|
1077 | 1099 | return collapsemsg |
|
1078 | 1100 | |
|
1079 | def storestatus(repo, originalwd, target, state, collapse, keep, keepbranches, | |
|
1080 | external, activebookmark): | |
|
1081 | 'Store the current status to allow recovery' | |
|
1082 | f = repo.vfs("rebasestate", "w") | |
|
1083 | f.write(repo[originalwd].hex() + '\n') | |
|
1084 | f.write(repo[target].hex() + '\n') | |
|
1085 | f.write(repo[external].hex() + '\n') | |
|
1086 | f.write('%d\n' % int(collapse)) | |
|
1087 | f.write('%d\n' % int(keep)) | |
|
1088 | f.write('%d\n' % int(keepbranches)) | |
|
1089 | f.write('%s\n' % (activebookmark or '')) | |
|
1090 | for d, v in state.iteritems(): | |
|
1091 | oldrev = repo[d].hex() | |
|
1092 | if v >= 0: | |
|
1093 | newrev = repo[v].hex() | |
|
1094 | elif v == revtodo: | |
|
1095 | # To maintain format compatibility, we have to use nullid. | |
|
1096 | # Please do remove this special case when upgrading the format. | |
|
1097 | newrev = hex(nullid) | |
|
1098 | else: | |
|
1099 | newrev = v | |
|
1100 | f.write("%s:%s\n" % (oldrev, newrev)) | |
|
1101 | f.close() | |
|
1102 | repo.ui.debug('rebase status stored\n') | |
|
1103 | ||
|
1104 | 1101 | def clearstatus(repo): |
|
1105 | 1102 | 'Remove the status files' |
|
1106 | 1103 | _clearrebasesetvisibiliy(repo) |
General Comments 0
You need to be logged in to leave comments.
Login now