clone: update to active bookmark, if set
This cannot happen during a normal Mercurial clone, but is useful for extensions like hg-git where we know what to check out — the Git HEAD — but do not wish to track it later on using the `@` bookmark.
Test Plan:
I have not included an explicit test, as this is much more easily tested within the `hg-git` test suite.
Differential Revision: https://phab.mercurial-scm.org/D9638
--- a/mercurial/hg.py Thu Dec 17 13:29:50 2020 +0100
+++ b/mercurial/hg.py Sun Dec 20 15:38:50 2020 +0100
@@ -1013,15 +1013,19 @@
pass
if uprev is None:
try:
- uprev = destrepo._bookmarks[b'@']
- update = b'@'
+ if destrepo._activebookmark:
+ uprev = destrepo.lookup(destrepo._activebookmark)
+ update = destrepo._activebookmark
+ else:
+ uprev = destrepo._bookmarks[b'@']
+ update = b'@'
bn = destrepo[uprev].branch()
if bn == b'default':
- status = _(b"updating to bookmark @\n")
+ status = _(b"updating to bookmark %s\n" % update)
else:
status = (
- _(b"updating to bookmark @ on branch %s\n") % bn
- )
+ _(b"updating to bookmark %s on branch %s\n")
+ ) % (update, bn)
except KeyError:
try:
uprev = destrepo.branchtip(b'default')