diff -r 04eaa8eec6a0 -r af12f58e2aa0 mercurial/commands.py --- a/mercurial/commands.py Mon Nov 18 09:09:05 2013 -0800 +++ b/mercurial/commands.py Mon Nov 25 16:15:44 2013 -0600 @@ -837,10 +837,12 @@ bookmarks.deletedivergent(repo, [target], mark) return + # consider successor changesets as well + foreground = obsolete.foreground(repo, [marks[mark]]) deletefrom = [b for b in divs if repo[b].rev() in anc or b == target] bookmarks.deletedivergent(repo, deletefrom, mark) - if bmctx.rev() in anc: + if bmctx.rev() in anc or target in foreground: ui.status(_("moving bookmark '%s' forward from %s\n") % (mark, short(bmctx.node()))) return