# HG changeset patch # User Pierre-Yves David # Date 1670023468 -3600 # Node ID cfe8d88a453e8c7fa376517c63508c36ef460674 # Parent 20f262ab6fd3f97b5b335e7c572e15b4b77e9782 peer: get the `path` object down to the httppeer One more peer with a path stored. diff -r 20f262ab6fd3 -r cfe8d88a453e mercurial/debugcommands.py --- a/mercurial/debugcommands.py Sat Dec 03 05:53:13 2022 +0100 +++ b/mercurial/debugcommands.py Sat Dec 03 00:24:28 2022 +0100 @@ -4500,7 +4500,8 @@ _(b'--peer %s not supported with HTTP peers') % opts[b'peer'] ) else: - peer = httppeer.makepeer(ui, path, opener=opener) + peer_path = urlutil.try_path(ui, path) + peer = httppeer.makepeer(ui, peer_path, opener=opener) # We /could/ populate stdin/stdout with sock.makefile()... else: diff -r 20f262ab6fd3 -r cfe8d88a453e mercurial/httppeer.py --- a/mercurial/httppeer.py Sat Dec 03 05:53:13 2022 +0100 +++ b/mercurial/httppeer.py Sat Dec 03 00:24:28 2022 +0100 @@ -382,8 +382,7 @@ class httppeer(wireprotov1peer.wirepeer): def __init__(self, ui, path, url, opener, requestbuilder, caps): - super().__init__(ui) - self._path = path + super().__init__(ui, path=path) self._url = url self._caps = caps self.limitedarguments = caps is not None and b'httppostargs' not in caps @@ -398,7 +397,7 @@ # Begin of ipeerconnection interface. def url(self): - return self._path + return self.path.loc def local(self): return None @@ -602,14 +601,13 @@ ``requestbuilder`` is the type used for constructing HTTP requests. It exists as an argument so extensions can override the default. """ - u = urlutil.url(path) - if u.query or u.fragment: - raise error.Abort( - _(b'unsupported URL component: "%s"') % (u.query or u.fragment) - ) + if path.url.query or path.url.fragment: + msg = _(b'unsupported URL component: "%s"') + msg %= path.url.query or path.url.fragment + raise error.Abort(msg) # urllib cannot handle URLs with embedded user or passwd. - url, authinfo = u.authinfo() + url, authinfo = path.url.authinfo() ui.debug(b'using %s\n' % url) opener = opener or urlmod.opener(ui, authinfo) @@ -624,9 +622,8 @@ def make_peer(ui, path, create, intents=None, createopts=None): if create: raise error.Abort(_(b'cannot create new http repository')) - path = path.loc try: - if path.startswith(b'https:') and not urlmod.has_https: + if path.url.scheme == b'https' and not urlmod.has_https: raise error.Abort( _(b'Python support for SSL and HTTPS is not installed') ) @@ -636,7 +633,7 @@ return inst except error.RepoError as httpexception: try: - r = statichttprepo.make_peer(ui, b"static-" + path, create) + r = statichttprepo.make_peer(ui, b"static-" + path.loc, create) ui.note(_(b'(falling back to static-http)\n')) return r except error.RepoError: