diff hgext/schemes.py @ 49757:5f71fff8dc74

peer: pass the `path` object to `make_peer` We don't do anything with it yet, but we can start implementing it for each peer type starting now.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Fri, 02 Dec 2022 18:19:59 +0100
parents f075a9463ee7
children bcc45b33efb2
line wrap: on
line diff
--- a/hgext/schemes.py	Fri Dec 02 18:18:57 2022 +0100
+++ b/hgext/schemes.py	Fri Dec 02 18:19:59 2022 +0100
@@ -80,13 +80,12 @@
     def __repr__(self):
         return b'<ShortRepository: %s>' % self.scheme
 
-    def make_peer(self, ui, url, *args, **kwargs):
-        url = self.resolve(url)
-        u = urlutil.url(url)
-        scheme = u.scheme or b'file'
-        cls = hg.peer_schemes.get(scheme)
+    def make_peer(self, ui, path, *args, **kwargs):
+        new_url = self.resolve(path.rawloc)
+        path = path.copy(new_raw_location=new_url)
+        cls = hg.peer_schemes.get(path.url.scheme)
         if cls is not None:
-            return cls.make_peer(ui, url, *args, **kwargs)
+            return cls.make_peer(ui, path, *args, **kwargs)
         return None
 
     def instance(self, ui, url, create, intents=None, createopts=None):