diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -833,7 +833,7 @@ def bookmark(ui, repo, mark=None, rev=No raise util.Abort( _("a bookmark cannot have the name of an existing branch")) if rev: - marks[mark] = repo.lookup(rev) + marks[mark] = scmutil.revsingle(repo, rev).node() else: marks[mark] = cur if not inactive and cur == marks[mark]: diff --git a/tests/test-bookmarks.t b/tests/test-bookmarks.t --- a/tests/test-bookmarks.t +++ b/tests/test-bookmarks.t @@ -154,6 +154,19 @@ list bookmarks * Y 2:db815d6d32e6 Z 0:f7b1eb17ad24 +bookmarks from a revset + $ hg bookmark -r '.^1' REVSET + $ hg bookmark -r ':tip' TIP + $ hg bookmarks + REVSET 0:f7b1eb17ad24 + * TIP 2:db815d6d32e6 + X2 1:925d80f479bb + Y 2:db815d6d32e6 + Z 0:f7b1eb17ad24 + + $ hg bookmark -d REVSET + $ hg bookmark -d TIP + rename without new name $ hg bookmark -m Y