diff --git a/mercurial/hg.py b/mercurial/hg.py
index 75b43843eb4d4302f4584034e2e629e1edafe1a9_bWVyY3VyaWFsL2hnLnB5..c9339efed65307d619cf9ff9b90bc47df8b08d34_bWVyY3VyaWFsL2hnLnB5 100644
--- a/mercurial/hg.py
+++ b/mercurial/hg.py
@@ -409,7 +409,6 @@
             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:
@@ -415,4 +414,3 @@
                     try:
-                        uprev = destrepo.lookup(test)
-                        break
+                        uprev = destrepo.lookup(checkout)
                     except error.RepoLookupError:
@@ -418,5 +416,13 @@
                     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 --git a/tests/test-hardlinks.t b/tests/test-hardlinks.t
index 75b43843eb4d4302f4584034e2e629e1edafe1a9_dGVzdHMvdGVzdC1oYXJkbGlua3MudA==..c9339efed65307d619cf9ff9b90bc47df8b08d34_dGVzdHMvdGVzdC1oYXJkbGlua3MudA== 100644
--- a/tests/test-hardlinks.t
+++ b/tests/test-hardlinks.t
@@ -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