diff --git a/mercurial/hg.py b/mercurial/hg.py --- a/mercurial/hg.py +++ b/mercurial/hg.py @@ -10,7 +10,7 @@ from node import * from repo import * from i18n import _ import localrepo, bundlerepo, httprepo, sshrepo, statichttprepo -import errno, lock, os, shutil, util +import errno, lock, os, shutil, util, cmdutil import merge as _merge import verify as _verify @@ -97,6 +97,10 @@ def clone(ui, source, dest=None, pull=Fa update: update working directory after clone completes, if destination is local repository """ + + origsource = source + source, rev = cmdutil.parseurl(ui.expandpath(source), rev) + if isinstance(source, str): src_repo = repository(ui, source) else: @@ -134,10 +138,10 @@ def clone(ui, source, dest=None, pull=Fa if islocal(dest): dir_cleanup = DirCleanup(dest) - abspath = source + abspath = origsource copy = False if src_repo.local() and islocal(dest): - abspath = os.path.abspath(source) + abspath = os.path.abspath(origsource) copy = not pull and not rev src_lock, dest_lock = None, None