hg.openpath: use url.islocal to tell if the path is local (
issue3624)
Previously we used hg.islocal, which doesn't work for paths pointing to
non-repos, such as patch files.
--- a/mercurial/hg.py Mon Feb 03 14:47:41 2014 -0800
+++ b/mercurial/hg.py Mon Feb 03 14:53:44 2014 -0800
@@ -92,8 +92,9 @@
def openpath(ui, path):
'''open path with open if local, url.open if remote'''
- if islocal(path):
- return util.posixfile(util.urllocalpath(path), 'rb')
+ pathurl = util.url(path, parsequery=False, parsefragment=False)
+ if pathurl.islocal():
+ return util.posixfile(pathurl.localpath(), 'rb')
else:
return url.open(ui, path)