Show More
@@ -247,6 +247,9 b' def rebase(ui, repo, **opts):' | |||||
247 |
|
247 | |||
248 | # Keep track of the current bookmarks in order to reset them later |
|
248 | # Keep track of the current bookmarks in order to reset them later | |
249 | currentbookmarks = repo._bookmarks.copy() |
|
249 | currentbookmarks = repo._bookmarks.copy() | |
|
250 | activebookmark = repo._bookmarkcurrent | |||
|
251 | if activebookmark: | |||
|
252 | bookmarks.unsetcurrent(repo) | |||
250 |
|
253 | |||
251 | sortedstate = sorted(state) |
|
254 | sortedstate = sorted(state) | |
252 | total = len(sortedstate) |
|
255 | total = len(sortedstate) | |
@@ -336,6 +339,11 b' def rebase(ui, repo, **opts):' | |||||
336 | util.unlinkpath(repo.sjoin('undo')) |
|
339 | util.unlinkpath(repo.sjoin('undo')) | |
337 | if skipped: |
|
340 | if skipped: | |
338 | ui.note(_("%d revisions have been skipped\n") % len(skipped)) |
|
341 | ui.note(_("%d revisions have been skipped\n") % len(skipped)) | |
|
342 | ||||
|
343 | if (activebookmark and | |||
|
344 | repo['tip'].node() == repo._bookmarks[activebookmark]): | |||
|
345 | bookmarks.setcurrent(repo, activebookmark) | |||
|
346 | ||||
339 | finally: |
|
347 | finally: | |
340 | release(lock, wlock) |
|
348 | release(lock, wlock) | |
341 |
|
349 | |||
@@ -483,12 +491,10 b' def updatemq(repo, state, skipped, **opt' | |||||
483 |
|
491 | |||
484 | def updatebookmarks(repo, nstate, originalbookmarks, **opts): |
|
492 | def updatebookmarks(repo, nstate, originalbookmarks, **opts): | |
485 | 'Move bookmarks to their correct changesets' |
|
493 | 'Move bookmarks to their correct changesets' | |
486 | current = repo._bookmarkcurrent |
|
|||
487 | for k, v in originalbookmarks.iteritems(): |
|
494 | for k, v in originalbookmarks.iteritems(): | |
488 | if v in nstate: |
|
495 | if v in nstate: | |
489 | if nstate[v] != nullmerge: |
|
496 | if nstate[v] != nullmerge: | |
490 |
# |
|
497 | # update the bookmarks for revs that have moved | |
491 | if k != current: |
|
|||
492 |
|
|
498 | repo._bookmarks[k] = nstate[v] | |
493 |
|
499 | |||
494 | bookmarks.write(repo) |
|
500 | bookmarks.write(repo) |
@@ -36,8 +36,10 b' Create a repo with several bookmarks' | |||||
36 | adding d |
|
36 | adding d | |
37 | created new head |
|
37 | created new head | |
38 |
|
38 | |||
|
39 | $ hg book W | |||
|
40 | ||||
39 | $ hg tglog |
|
41 | $ hg tglog | |
40 | @ 3: 'D' bookmarks: |
|
42 | @ 3: 'D' bookmarks: W | |
41 | | |
|
43 | | | |
42 | | o 2: 'C' bookmarks: Y Z |
|
44 | | o 2: 'C' bookmarks: Y Z | |
43 | | | |
|
45 | | | | |
@@ -60,7 +62,7 b' Move only rebased bookmarks' | |||||
60 | $ hg tglog |
|
62 | $ hg tglog | |
61 | @ 3: 'C' bookmarks: Y Z |
|
63 | @ 3: 'C' bookmarks: Y Z | |
62 | | |
|
64 | | | |
63 | o 2: 'D' bookmarks: |
|
65 | o 2: 'D' bookmarks: W | |
64 | | |
|
66 | | | |
65 | | o 1: 'B' bookmarks: X |
|
67 | | o 1: 'B' bookmarks: X | |
66 | |/ |
|
68 | |/ | |
@@ -82,7 +84,30 b' Keep bookmarks to the correct rebased ch' | |||||
82 | | |
|
84 | | | |
83 | o 2: 'B' bookmarks: X |
|
85 | o 2: 'B' bookmarks: X | |
84 | | |
|
86 | | | |
85 | o 1: 'D' bookmarks: |
|
87 | o 1: 'D' bookmarks: W | |
86 | | |
|
88 | | | |
87 | o 0: 'A' bookmarks: |
|
89 | o 0: 'A' bookmarks: | |
88 |
|
90 | |||
|
91 | ||||
|
92 | Keep active bookmark on the correct changeset | |||
|
93 | ||||
|
94 | $ cd .. | |||
|
95 | $ hg clone -q a a3 | |||
|
96 | ||||
|
97 | $ cd a3 | |||
|
98 | $ hg up -q X | |||
|
99 | ||||
|
100 | $ hg rebase -d W | |||
|
101 | saved backup bundle to $TESTTMP/a3/.hg/strip-backup/*-backup.hg (glob) | |||
|
102 | ||||
|
103 | $ hg tglog | |||
|
104 | @ 3: 'C' bookmarks: Y Z | |||
|
105 | | | |||
|
106 | o 2: 'B' bookmarks: X | |||
|
107 | | | |||
|
108 | o 1: 'D' bookmarks: W | |||
|
109 | | | |||
|
110 | o 0: 'A' bookmarks: | |||
|
111 | ||||
|
112 | ||||
|
113 | $ cd .. |
General Comments 0
You need to be logged in to leave comments.
Login now