diff --git a/mercurial/bookmarks.py b/mercurial/bookmarks.py --- a/mercurial/bookmarks.py +++ b/mercurial/bookmarks.py @@ -853,6 +853,8 @@ return tgt = cur if rev: + warnm = "adding bookmarks to a hidden changeset" + repo = scmutil.unhidehashlikerevs(repo, [rev], 'warn', warnm) tgt = scmutil.revsingle(repo, rev).node() for bm in marks.checkconflict(mark, force, tgt): changes.append((bm, None)) diff --git a/tests/test-directaccess.t b/tests/test-directaccess.t --- a/tests/test-directaccess.t +++ b/tests/test-directaccess.t @@ -186,3 +186,11 @@ abort: hidden revision '2'! (use --hidden to access hidden revisions) [255] + +Setting a bookmark will make that changeset unhidden, so this should come in end + + $ hg bookmarks -r 28ad74 book + adding bookmarks to a hidden changeset 28ad74487de9 + + $ hg bookmarks + book 2:28ad74487de9