mercurial/commands.py
branchstable
changeset 20107 2ca325ea57fa
parent 20093 1dee888b22f7
child 20108 af12f58e2aa0
child 20146 aa192af94321
equal deleted inserted replaced
20106:c33d9217e99d 20107:2ca325ea57fa
   834                 # that contains a divergent bookmark
   834                 # that contains a divergent bookmark
   835                 if bmctx.rev() not in anc and target in divs:
   835                 if bmctx.rev() not in anc and target in divs:
   836                     bookmarks.deletedivergent(repo, [target], mark)
   836                     bookmarks.deletedivergent(repo, [target], mark)
   837                     return
   837                     return
   838 
   838 
       
   839                 # consider successor changesets as well
       
   840                 foreground = obsolete.foreground(repo, [marks[mark]])
   839                 deletefrom = [b for b in divs
   841                 deletefrom = [b for b in divs
   840                               if repo[b].rev() in anc or b == target]
   842                               if repo[b].rev() in anc or b == target]
   841                 bookmarks.deletedivergent(repo, deletefrom, mark)
   843                 bookmarks.deletedivergent(repo, deletefrom, mark)
   842                 if bmctx.rev() in anc:
   844                 if bmctx.rev() in anc or target in foreground:
   843                     ui.status(_("moving bookmark '%s' forward from %s\n") %
   845                     ui.status(_("moving bookmark '%s' forward from %s\n") %
   844                               (mark, short(bmctx.node())))
   846                               (mark, short(bmctx.node())))
   845                     return
   847                     return
   846             raise util.Abort(_("bookmark '%s' already exists "
   848             raise util.Abort(_("bookmark '%s' already exists "
   847                                "(use -f to force)") % mark)
   849                                "(use -f to force)") % mark)