diff mercurial/hg.py @ 17867:c9339efed653 stable

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.
author Thomas Arendsen Hein <thomas@intevation.de>
date Fri, 26 Oct 2012 12:36:15 +0200
parents b32e55e6c3c7
children 7d2dd10ce9ea
line wrap: on
line diff
--- 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)