From patchwork Fri Jan 17 20:14:32 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [6, of, 6, V4] commands: use bookmarks.validdest instead of duplicating logic From: Sean Farley X-Patchwork-Id: 3379 Message-Id: <90bb5b7793efbb3f0952.1389989672@laptop.local> To: mercurial-devel@selenic.com Date: Fri, 17 Jan 2014 14:14:32 -0600 # HG changeset patch # User Sean Farley # Date 1389830113 21600 # Wed Jan 15 17:55:13 2014 -0600 # Node ID 90bb5b7793efbb3f09529971079d36bd2c5cad5d # Parent 2db9cc45ec27273af8ee1240390d051c585034d8 commands: use bookmarks.validdest instead of duplicating logic Now that bookmarks.py has grown a validdest method that even handles successor changesets, we use that instead of duplicating the logic in commands.py diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -845,16 +845,14 @@ def bookmark(ui, repo, *names, **opts): # that contains a divergent bookmark if bmctx.rev() not in anc and target in divs: 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 or target in foreground: + if bookmarks.validdest(repo, bmctx, repo[target]): ui.status(_("moving bookmark '%s' forward from %s\n") % (mark, short(bmctx.node()))) return raise util.Abort(_("bookmark '%s' already exists " "(use -f to force)") % mark)