# HG changeset patch # User Thomas Arendsen Hein # Date 1351247775 -7200 # Node ID c9339efed65307d619cf9ff9b90bc47df8b08d34 # Parent 75b43843eb4d4302f4584034e2e629e1edafe1a9 clone: make sure to use "@" as bookmark and "default" as branch (issue3677) Before this change a bookmark named "default" or a branch named "@" would cause the wrong changeset to be checked out. The change in output of test-hardlinks.t is due to the fact that no unneeded tag lookups for the tags "@" or "default" happen, therefore the cache file is not created. diff -r 75b43843eb4d -r c9339efed653 mercurial/hg.py --- a/mercurial/hg.py Fri Oct 26 09:29:50 2012 +0200 +++ b/mercurial/hg.py Fri Oct 26 12:36:15 2012 +0200 @@ -409,14 +409,20 @@ if update: if update is not True: checkout = srcpeer.lookup(update) - for test in (checkout, '@', 'default', 'tip'): - if test is None: - continue + uprev = None + if checkout is not None: try: - uprev = destrepo.lookup(test) - break + uprev = destrepo.lookup(checkout) except error.RepoLookupError: - continue + pass + if uprev is None: + try: + uprev = destrepo._bookmarks['@'] + except KeyError: + try: + uprev = destrepo.branchtip('default') + except error.RepoLookupError: + uprev = destrepo.lookup('tip') bn = destrepo[uprev].branch() destrepo.ui.status(_("updating to branch %s\n") % bn) _update(destrepo, uprev) diff -r 75b43843eb4d -r c9339efed653 tests/test-hardlinks.t --- a/tests/test-hardlinks.t Fri Oct 26 09:29:50 2012 +0200 +++ b/tests/test-hardlinks.t Fri Oct 26 12:36:15 2012 +0200 @@ -197,7 +197,6 @@ 2 r4/.hg/00changelog.i 2 r4/.hg/branch 2 r4/.hg/cache/branchheads - 2 r4/.hg/cache/tags 2 r4/.hg/dirstate 2 r4/.hg/hgrc 2 r4/.hg/last-message.txt @@ -228,7 +227,6 @@ 2 r4/.hg/00changelog.i 1 r4/.hg/branch 2 r4/.hg/cache/branchheads - 2 r4/.hg/cache/tags 1 r4/.hg/dirstate 2 r4/.hg/hgrc 2 r4/.hg/last-message.txt