Mercurial > public > mercurial-scm > hg-stable
diff mercurial/hg.py @ 7045:f82938c87b92
clone: honor -r even when pulling named branches
author | Dirkjan Ochtman <dirkjan@ochtman.nl> |
---|---|
date | Wed, 24 Sep 2008 13:10:09 +0200 |
parents | e51c0f41f271 |
children | 6788608627c4 |
line wrap: on
line diff
--- 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: