diff -r 41628bd60ee6 -r 376d3df9f47b hgext/evolve.py --- a/hgext/evolve.py Thu May 14 11:32:04 2015 -0700 +++ b/hgext/evolve.py Wed May 20 13:23:20 2015 -0700 @@ -1898,8 +1898,20 @@ repo.dirstate.rebuild(newnode.node(), newnode.manifest(), changedfiles) repo.dirstate.write() else: + bookactive = bmactive(repo) + # Active bookmark that we don't want to delete (with -B option) + # we deactivate and move it before the update and reactivate it + # after + movebookmark = bookactive and not bookmark + if movebookmark: + bookmarks.deactivate(repo) + repo._bookmarks[bookactive] = newnode.node() + repo._bookmarks.write() commands.update(ui, repo, newnode.rev()) ui.status(_('working directory now at %s\n') % newnode) + if movebookmark: + bookmarks.activate(repo, bookactive) + # update bookmarks if bookmark: _deletebookmark(ui, marks, bookmark)