diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -917,6 +917,9 @@ def bookmark(ui, repo, *names, **opts): diverged, a new 'divergent bookmark' of the form 'name@path' will be created. Using :hg:`merge` will resolve the divergence. + Specifying bookmark as '.' to -m or -d options is equivalent to specifying + the active bookmark's name. + A bookmark named '@' has the special property that :hg:`clone` will check it out by default if it exists. @@ -962,6 +965,7 @@ def bookmark(ui, repo, *names, **opts): if delete or rename or names or inactive: with repo.wlock(), repo.lock(), repo.transaction('bookmark') as tr: if delete: + names = pycompat.maplist(repo._bookmarks.expandname, names) bookmarks.delete(repo, tr, names) elif rename: if not names: diff --git a/tests/test-bookmarks.t b/tests/test-bookmarks.t --- a/tests/test-bookmarks.t +++ b/tests/test-bookmarks.t @@ -213,6 +213,26 @@ rename bookmark using . with no active b $ hg up -q Y $ hg book -d rename-me +delete bookmark using . + + $ hg book delete-me + $ hg book -d . + $ hg bookmark + X2 1:925d80f479bb + Y 2:db815d6d32e6 + Z 0:f7b1eb17ad24 + $ hg up -q Y + +delete bookmark using . with no active bookmark + + $ hg book delete-me + $ hg book -i delete-me + $ hg book -d . + abort: no active bookmark + [255] + $ hg up -q Y + $ hg book -d delete-me + list bookmarks $ hg bookmark