diff --git a/mercurial/hg.py b/mercurial/hg.py --- a/mercurial/hg.py +++ b/mercurial/hg.py @@ -105,14 +105,14 @@ def clone(ui, source, dest=None, pull=Fa destination is local repository """ - origsource = source - source, rev, checkout = parseurl(ui.expandpath(source), rev) - if isinstance(source, str): + origsource = ui.expandpath(source) + source, rev, checkout = parseurl(origsource, rev) src_repo = repository(ui, source) else: src_repo = source - source = src_repo.url() + origsource = source = src_repo.url() + checkout = None if dest is None: dest = defaultdest(source) diff --git a/tests/test-clone b/tests/test-clone --- a/tests/test-clone +++ b/tests/test-clone @@ -32,4 +32,8 @@ cd ../.. hg clone file://a e grep 'file:' e/.hg/hgrc +# check that path aliases are expanded +hg clone -q -U --config 'paths.foobar=a#0' foobar f +hg -R f showconfig paths.default | sed -e 's,.*/,,' + exit 0 diff --git a/tests/test-clone.out b/tests/test-clone.out --- a/tests/test-clone.out +++ b/tests/test-clone.out @@ -15,3 +15,4 @@ destination directory: a 1 files updated, 0 files merged, 0 files removed, 0 files unresolved a 1 files updated, 0 files merged, 0 files removed, 0 files unresolved +a#0