--- a/mercurial/hg.py Sat Sep 20 15:00:58 2008 +0200
+++ b/mercurial/hg.py Wed Sep 24 13:10:09 2008 +0200
@@ -20,10 +20,11 @@
'''parse url#branch, returning url, branch + revs'''
if '#' not in url:
- return url, (revs or None), None
+ return url, (revs or None), revs and revs[-1] or None
- url, rev = url.split('#', 1)
- return url, revs + [rev], rev
+ url, branch = url.split('#', 1)
+ checkout = revs and revs[-1] or branch
+ return url, revs + [branch], checkout
schemes = {
'bundle': bundlerepo,
@@ -110,7 +111,7 @@
else:
src_repo = source
origsource = source = src_repo.url()
- checkout = None
+ checkout = rev and rev[-1] or None
if dest is None:
dest = defaultdest(source)
@@ -245,12 +246,13 @@
if update:
dest_repo.ui.status(_("updating working directory\n"))
- if not checkout:
+ for test in (checkout, 'default', 'tip'):
try:
- checkout = dest_repo.lookup("default")
+ uprev = dest_repo.lookup(test)
+ break
except:
- checkout = dest_repo.changelog.tip()
- _update(dest_repo, checkout)
+ continue
+ _update(dest_repo, uprev)
return src_repo, dest_repo
finally: