--- a/hgext/rebase.py Sat Jun 16 17:05:55 2012 +0900
+++ b/hgext/rebase.py Fri Jun 22 11:40:31 2012 -0700
@@ -247,6 +247,9 @@
# Keep track of the current bookmarks in order to reset them later
currentbookmarks = repo._bookmarks.copy()
+ activebookmark = repo._bookmarkcurrent
+ if activebookmark:
+ bookmarks.unsetcurrent(repo)
sortedstate = sorted(state)
total = len(sortedstate)
@@ -336,6 +339,11 @@
util.unlinkpath(repo.sjoin('undo'))
if skipped:
ui.note(_("%d revisions have been skipped\n") % len(skipped))
+
+ if (activebookmark and
+ repo['tip'].node() == repo._bookmarks[activebookmark]):
+ bookmarks.setcurrent(repo, activebookmark)
+
finally:
release(lock, wlock)
@@ -483,13 +491,11 @@
def updatebookmarks(repo, nstate, originalbookmarks, **opts):
'Move bookmarks to their correct changesets'
- current = repo._bookmarkcurrent
for k, v in originalbookmarks.iteritems():
if v in nstate:
if nstate[v] != nullmerge:
- # reset the pointer if the bookmark was moved incorrectly
- if k != current:
- repo._bookmarks[k] = nstate[v]
+ # update the bookmarks for revs that have moved
+ repo._bookmarks[k] = nstate[v]
bookmarks.write(repo)