diff --git a/mercurial/hg.py b/mercurial/hg.py --- a/mercurial/hg.py +++ b/mercurial/hg.py @@ -17,7 +17,7 @@ import verify as verifymod import errno, os, shutil def _local(path): - path = util.expandpath(util.localpath(path)) + path = util.expandpath(util.urllocalpath(path)) return (os.path.isfile(path) and bundlerepo or localrepo) def addbranchrevs(lrepo, repo, branches, revs): @@ -227,8 +227,8 @@ def clone(ui, peeropts, source, dest=Non else: dest = ui.expandpath(dest) - dest = util.localpath(dest) - source = util.localpath(source) + dest = util.urllocalpath(dest) + source = util.urllocalpath(source) if os.path.exists(dest): if not os.path.isdir(dest): @@ -250,7 +250,7 @@ def clone(ui, peeropts, source, dest=Non try: abspath = origsource if islocal(origsource): - abspath = os.path.abspath(util.localpath(origsource)) + abspath = os.path.abspath(util.urllocalpath(origsource)) if islocal(dest): dircleanup = DirCleanup(dest) diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py --- a/mercurial/localrepo.py +++ b/mercurial/localrepo.py @@ -1985,7 +1985,7 @@ def undoname(fn): return os.path.join(base, name.replace('journal', 'undo', 1)) def instance(ui, path, create): - return localrepository(ui, util.localpath(path), create) + return localrepository(ui, util.urllocalpath(path), create) def islocal(path): return True diff --git a/mercurial/util.py b/mercurial/util.py --- a/mercurial/util.py +++ b/mercurial/util.py @@ -1589,7 +1589,7 @@ def hasscheme(path): def hasdriveletter(path): return path[1:2] == ':' and path[0:1].isalpha() -def localpath(path): +def urllocalpath(path): return url(path, parsequery=False, parsefragment=False).localpath() def hidepassword(u):