diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -718,8 +718,7 @@ def clone(ui, source, dest=None, **opts) if opts['remotecmd']: ui.setconfig("ui", "remotecmd", opts['remotecmd']) - if not os.path.exists(source): - source = ui.expandpath(source) + source = ui.expandpath(source) d = Dircleanup(dest) abspath = source diff --git a/mercurial/ui.py b/mercurial/ui.py --- a/mercurial/ui.py +++ b/mercurial/ui.py @@ -154,6 +154,10 @@ class ui(object): return user def expandpath(self, loc, root=""): + """Return repository location relative to cwd or from [paths]""" + if os.path.exists(loc): + return loc + paths = {} for name, path in self.configitems("paths"): m = path.find("://")