rebase: do not try to reactivate deleted divergent bookmark
If the currently active bookmark is divergent one, it may be resolved during
rebase. Trying to activate it will raise "KeyError: 'W@diverge'".
--- a/hgext/rebase.py Thu Feb 13 13:05:09 2014 +0100
+++ b/hgext/rebase.py Sat Feb 15 16:19:19 2014 +0900
@@ -404,6 +404,9 @@
if currentbookmarks:
updatebookmarks(repo, targetnode, nstate, currentbookmarks)
+ if activebookmark not in repo._bookmarks:
+ # active bookmark was divergent one and has been deleted
+ activebookmark = None
clearstatus(repo)
ui.note(_("rebase completed\n"))
--- a/tests/test-rebase-bookmarks.t Thu Feb 13 13:05:09 2014 +0100
+++ b/tests/test-rebase-bookmarks.t Sat Feb 15 16:19:19 2014 +0900
@@ -85,6 +85,24 @@
|/
o 0: 'A' bookmarks: Y@diverge
+Do not try to keep active but deleted divergent bookmark
+
+ $ cd ..
+ $ hg clone -q a a4
+
+ $ cd a4
+ $ hg up -q 2
+ $ hg book W@diverge
+
+ $ hg rebase -s W -d .
+ saved backup bundle to $TESTTMP/a4/.hg/strip-backup/*-backup.hg (glob)
+
+ $ hg bookmarks
+ W 3:0d3554f74897
+ X 1:6c81ed0049f8
+ Y 2:49cb3485fa0c
+ Z 2:49cb3485fa0c
+
Keep bookmarks to the correct rebased changeset
$ cd ..