diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -5524,7 +5524,11 @@ # if we defined a bookmark, we have to remember the original name brev = rev - rev = scmutil.revsingle(repo, rev, rev).rev() + repo = scmutil.unhidehashlikerevs(repo, [rev], 'nowarn') + ctx = scmutil.revsingle(repo, rev, rev) + rev = ctx.rev() + if repo.filtername == 'visible-hidden': + ui.warn(_("updating to a hidden changeset %s\n") % ctx.hex()[:12]) repo.ui.setconfig('ui', 'forcemerge', tool, 'update') diff --git a/tests/test-directaccess.t b/tests/test-directaccess.t --- a/tests/test-directaccess.t +++ b/tests/test-directaccess.t @@ -143,6 +143,15 @@ $ hg status --change 28ad74 A c +`hg update` + + $ hg up 28ad74 + updating to a hidden changeset 28ad74487de9 + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + + $ hg up 3 + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + Commands with undefined cmdtype should not work right now $ hg phase -r 28ad74