##// END OF EJS Templates
rebase: restore active bookmark after rebase --continue...
Durham Goode -
r18755:72412afe stable
parent child Browse files
Show More
@@ -112,6 +112,7 def rebase(ui, repo, **opts):
112 112 Returns 0 on success, 1 if nothing to rebase.
113 113 """
114 114 originalwd = target = None
115 activebookmark = None
115 116 external = nullrev
116 117 state = {}
117 118 skipped = set()
@@ -159,7 +160,7 def rebase(ui, repo, **opts):
159 160 ui.warn(_('tool option will be ignored\n'))
160 161
161 162 (originalwd, target, state, skipped, collapsef, keepf,
162 keepbranchesf, external) = restorestatus(repo)
163 keepbranchesf, external, activebookmark) = restorestatus(repo)
163 164 if abortf:
164 165 return abort(repo, originalwd, target, state)
165 166 else:
@@ -245,7 +246,7 def rebase(ui, repo, **opts):
245 246
246 247 # Keep track of the current bookmarks in order to reset them later
247 248 currentbookmarks = repo._bookmarks.copy()
248 activebookmark = repo._bookmarkcurrent
249 activebookmark = activebookmark or repo._bookmarkcurrent
249 250 if activebookmark:
250 251 bookmarks.unsetcurrent(repo)
251 252
@@ -258,7 +259,7 def rebase(ui, repo, **opts):
258 259 ui.progress(_("rebasing"), pos, ("%d:%s" % (rev, repo[rev])),
259 260 _('changesets'), total)
260 261 storestatus(repo, originalwd, target, state, collapsef, keepf,
261 keepbranchesf, external)
262 keepbranchesf, external, activebookmark)
262 263 p1, p2 = defineparents(repo, rev, target, state,
263 264 targetancestors)
264 265 if len(repo.parents()) == 2:
@@ -516,7 +517,7 def updatebookmarks(repo, targetnode, ns
516 517 marks.write()
517 518
518 519 def storestatus(repo, originalwd, target, state, collapse, keep, keepbranches,
519 external):
520 external, activebookmark):
520 521 'Store the current status to allow recovery'
521 522 f = repo.opener("rebasestate", "w")
522 523 f.write(repo[originalwd].hex() + '\n')
@@ -525,6 +526,7 def storestatus(repo, originalwd, target
525 526 f.write('%d\n' % int(collapse))
526 527 f.write('%d\n' % int(keep))
527 528 f.write('%d\n' % int(keepbranches))
529 f.write('%s\n' % (activebookmark or ''))
528 530 for d, v in state.iteritems():
529 531 oldrev = repo[d].hex()
530 532 if v > nullmerge:
@@ -545,6 +547,7 def restorestatus(repo):
545 547 target = None
546 548 collapse = False
547 549 external = nullrev
550 activebookmark = None
548 551 state = {}
549 552 f = repo.opener("rebasestate")
550 553 for i, l in enumerate(f.read().splitlines()):
@@ -560,6 +563,10 def restorestatus(repo):
560 563 keep = bool(int(l))
561 564 elif i == 5:
562 565 keepbranches = bool(int(l))
566 elif i == 6 and not (len(l) == 81 and ':' in l):
567 # line 6 is a recent addition, so for backwards compatibility
568 # check that the line doesn't look like the oldrev:newrev lines
569 activebookmark = l
563 570 else:
564 571 oldrev, newrev = l.split(':')
565 572 if newrev in (str(nullmerge), str(revignored)):
@@ -577,7 +584,7 def restorestatus(repo):
577 584 repo.ui.debug('computed skipped revs: %s\n' % skipped)
578 585 repo.ui.debug('rebase status resumed\n')
579 586 return (originalwd, target, state, skipped,
580 collapse, keep, keepbranches, external)
587 collapse, keep, keepbranches, external, activebookmark)
581 588 except IOError, err:
582 589 if err.errno != errno.ENOENT:
583 590 raise
@@ -7,7 +7,7
7 7 > publish=False
8 8 >
9 9 > [alias]
10 > tglog = log -G --template "{rev}:{phase} '{desc}' {branches}\n"
10 > tglog = log -G --template "{rev}:{phase} '{desc}' {branches} {bookmarks}\n"
11 11 > EOF
12 12
13 13 $ hg init a
@@ -36,11 +36,12
36 36 $ echo l3 >> extra2
37 37 $ hg add extra2
38 38 $ hg ci -m L3
39 $ hg bookmark mybook
39 40
40 41 $ hg phase --force --secret 4
41 42
42 43 $ hg tglog
43 @ 5:secret 'L3'
44 @ 5:secret 'L3' mybook
44 45 |
45 46 o 4:secret 'L2'
46 47 |
@@ -81,7 +82,7 Conclude rebase:
81 82 saved backup bundle to $TESTTMP/a/.hg/strip-backup/*-backup.hg (glob)
82 83
83 84 $ hg tglog
84 @ 5:secret 'L3'
85 @ 5:secret 'L3' mybook
85 86 |
86 87 o 4:secret 'L2'
87 88 |
@@ -118,4 +119,8 Check correctness:
118 119 $ hg cat -r 5 common
119 120 resolved merge
120 121
122 Bookmark stays active after --continue
123 $ hg bookmarks
124 * mybook 5:d67b21408fc0
125
121 126 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now