diff hgext3rd/topic/discovery.py @ 6383:c6e3d2dbbeb0

topic: simply reuse wirepeer.branchmap() as wirepeer.branchmaptns() The function is just parsing bytes into a dict. In this way, branchmap and branchmaptns are completely compatible. The only downside is that wirepeer.branchmaptns doesn't get proper function name, so if someone needs to debug this, they might still see "wirepeer.branchmap" in certain places even if we're calling branchmaptns.
author Anton Shestakov <av6@dwimlabs.net>
date Thu, 02 Feb 2023 10:41:52 +0400
parents 3d0b5b4b262a
children afd252e8f6e6
line wrap: on
line diff
--- a/hgext3rd/topic/discovery.py	Wed Feb 01 18:18:35 2023 +0400
+++ b/hgext3rd/topic/discovery.py	Thu Feb 02 10:41:52 2023 +0400
@@ -10,7 +10,6 @@
     bundle2,
     discovery,
     encoding,
-    error,
     exchange,
     extensions,
     scmutil,
@@ -18,7 +17,7 @@
     wireprototypes,
     wireprotov1server,
 )
-from mercurial.wireprotov1peer import batchable, wirepeer
+from mercurial.wireprotov1peer import wirepeer
 from . import (
     common,
     compat,
@@ -325,26 +324,6 @@
         caps.append(b'topics-namespaces')
     return caps
 
-def branchmaptns(self):
-    """copied from wirepeer.branchmap()
-
-    Client-side command for communicating with a peer repository. Calls wire
-    protocol command of the same name (thanks to the batchable decorator).
-    """
-    def decode(d):
-        try:
-            branchmap = {}
-            for branchpart in d.splitlines():
-                branchname, branchheads = branchpart.split(b' ', 1)
-                branchname = encoding.tolocal(urlreq.unquote(branchname))
-                branchheads = wireprototypes.decodelist(branchheads)
-                branchmap[branchname] = branchheads
-            return branchmap
-        except TypeError:
-            self._abort(error.ResponseError(_(b"unexpected response:"), d))
-
-    return {}, decode
-
 def wrapbranchinfo(orig, self, rev):
     b, close = orig(self, rev)
     if common.hastopicext(self._repo):
@@ -368,7 +347,7 @@
     wireprotov1server.commands.pop(b'branchmap')
     wireprotov1server.wireprotocommand(b'branchmap', permission=b'pull')(wireprotov1server.branchmap)
     extensions.wrapfunction(wireprotov1server, '_capabilities', wireprotocaps)
-    wirepeer.branchmaptns = batchable(branchmaptns)
+    wirepeer.branchmaptns = wirepeer.branchmap
     wireprotov1server.wireprotocommand(b'branchmaptns', permission=b'pull')(wireprotobranchmaptns)
     extensions.wrapfunction(branchmap.revbranchcache, 'branchinfo', wrapbranchinfo)
     # we need a proper wrap b2 part stuff