# HG changeset patch # User Yuya Nishihara # Date 1392448759 -32400 # Node ID f2a0a0e76b4cff445c504db68f04582843cd1c72 # Parent 4e41b2fe46ccfb9722e51e23902f7019d286b15d 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'". diff -r 4e41b2fe46cc -r f2a0a0e76b4c hgext/rebase.py --- 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")) diff -r 4e41b2fe46cc -r f2a0a0e76b4c tests/test-rebase-bookmarks.t --- 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 ..