Show More
@@ -225,14 +225,26 b' class rebaseruntime(object):' | |||||
225 |
|
225 | |||
226 | def restorestatus(self): |
|
226 | def restorestatus(self): | |
227 | """Restore a previously stored status""" |
|
227 | """Restore a previously stored status""" | |
|
228 | data = self._read() | |||
|
229 | self.repo.ui.debug('rebase status resumed\n') | |||
|
230 | ||||
|
231 | self.originalwd = data['originalwd'] | |||
|
232 | self.destmap = data['destmap'] | |||
|
233 | self.state = data['state'] | |||
|
234 | self.skipped = data['skipped'] | |||
|
235 | self.collapsef = data['collapse'] | |||
|
236 | self.keepf = data['keep'] | |||
|
237 | self.keepbranchesf = data['keepbranches'] | |||
|
238 | self.external = data['external'] | |||
|
239 | self.activebookmark = data['activebookmark'] | |||
|
240 | ||||
|
241 | def _read(self): | |||
228 | self.prepared = True |
|
242 | self.prepared = True | |
229 | repo = self.repo |
|
243 | repo = self.repo | |
230 | assert repo.filtername is None |
|
244 | assert repo.filtername is None | |
231 | keepbranches = None |
|
245 | data = {'keepbranches': None, 'collapse': None, 'activebookmark': None, | |
|
246 | 'external': nullrev, 'keep': None, 'originalwd': None} | |||
232 | legacydest = None |
|
247 | legacydest = None | |
233 | collapse = False |
|
|||
234 | external = nullrev |
|
|||
235 | activebookmark = None |
|
|||
236 | state = {} |
|
248 | state = {} | |
237 | destmap = {} |
|
249 | destmap = {} | |
238 |
|
250 | |||
@@ -240,25 +252,25 b' class rebaseruntime(object):' | |||||
240 | f = repo.vfs("rebasestate") |
|
252 | f = repo.vfs("rebasestate") | |
241 | for i, l in enumerate(f.read().splitlines()): |
|
253 | for i, l in enumerate(f.read().splitlines()): | |
242 | if i == 0: |
|
254 | if i == 0: | |
243 | originalwd = repo[l].rev() |
|
255 | data['originalwd'] = repo[l].rev() | |
244 | elif i == 1: |
|
256 | elif i == 1: | |
245 | # this line should be empty in newer version. but legacy |
|
257 | # this line should be empty in newer version. but legacy | |
246 | # clients may still use it |
|
258 | # clients may still use it | |
247 | if l: |
|
259 | if l: | |
248 | legacydest = repo[l].rev() |
|
260 | legacydest = repo[l].rev() | |
249 | elif i == 2: |
|
261 | elif i == 2: | |
250 | external = repo[l].rev() |
|
262 | data['external'] = repo[l].rev() | |
251 | elif i == 3: |
|
263 | elif i == 3: | |
252 | collapse = bool(int(l)) |
|
264 | data['collapse'] = bool(int(l)) | |
253 | elif i == 4: |
|
265 | elif i == 4: | |
254 | keep = bool(int(l)) |
|
266 | data['keep'] = bool(int(l)) | |
255 | elif i == 5: |
|
267 | elif i == 5: | |
256 | keepbranches = bool(int(l)) |
|
268 | data['keepbranches'] = bool(int(l)) | |
257 | elif i == 6 and not (len(l) == 81 and ':' in l): |
|
269 | elif i == 6 and not (len(l) == 81 and ':' in l): | |
258 | # line 6 is a recent addition, so for backwards |
|
270 | # line 6 is a recent addition, so for backwards | |
259 | # compatibility check that the line doesn't look like the |
|
271 | # compatibility check that the line doesn't look like the | |
260 | # oldrev:newrev lines |
|
272 | # oldrev:newrev lines | |
261 | activebookmark = l |
|
273 | data['activebookmark'] = l | |
262 | else: |
|
274 | else: | |
263 | args = l.split(':') |
|
275 | args = l.split(':') | |
264 | oldrev = repo[args[0]].rev() |
|
276 | oldrev = repo[args[0]].rev() | |
@@ -281,30 +293,24 b' class rebaseruntime(object):' | |||||
281 | raise |
|
293 | raise | |
282 | cmdutil.wrongtooltocontinue(repo, _('rebase')) |
|
294 | cmdutil.wrongtooltocontinue(repo, _('rebase')) | |
283 |
|
295 | |||
284 | if keepbranches is None: |
|
296 | if data['keepbranches'] is None: | |
285 | raise error.Abort(_('.hg/rebasestate is incomplete')) |
|
297 | raise error.Abort(_('.hg/rebasestate is incomplete')) | |
286 |
|
298 | |||
|
299 | data['destmap'] = destmap | |||
|
300 | data['state'] = state | |||
287 | skipped = set() |
|
301 | skipped = set() | |
288 | # recompute the set of skipped revs |
|
302 | # recompute the set of skipped revs | |
289 | if not collapse: |
|
303 | if not data['collapse']: | |
290 | seen = set(destmap.values()) |
|
304 | seen = set(destmap.values()) | |
291 | for old, new in sorted(state.items()): |
|
305 | for old, new in sorted(state.items()): | |
292 | if new != revtodo and new in seen: |
|
306 | if new != revtodo and new in seen: | |
293 | skipped.add(old) |
|
307 | skipped.add(old) | |
294 | seen.add(new) |
|
308 | seen.add(new) | |
|
309 | data['skipped'] = skipped | |||
295 | repo.ui.debug('computed skipped revs: %s\n' % |
|
310 | repo.ui.debug('computed skipped revs: %s\n' % | |
296 | (' '.join('%d' % r for r in sorted(skipped)) or '')) |
|
311 | (' '.join('%d' % r for r in sorted(skipped)) or '')) | |
297 | repo.ui.debug('rebase status resumed\n') |
|
|||
298 |
|
312 | |||
299 | self.originalwd = originalwd |
|
313 | return data | |
300 | self.destmap = destmap |
|
|||
301 | self.state = state |
|
|||
302 | self.skipped = skipped |
|
|||
303 | self.collapsef = collapse |
|
|||
304 | self.keepf = keep |
|
|||
305 | self.keepbranchesf = keepbranches |
|
|||
306 | self.external = external |
|
|||
307 | self.activebookmark = activebookmark |
|
|||
308 |
|
314 | |||
309 | def _handleskippingobsolete(self, obsoleterevs, destmap): |
|
315 | def _handleskippingobsolete(self, obsoleterevs, destmap): | |
310 | """Compute structures necessary for skipping obsolete revisions |
|
316 | """Compute structures necessary for skipping obsolete revisions |
General Comments 0
You need to be logged in to leave comments.
Login now