mercurial/sshrepo.py
changeset 8563 f8ff65a83169
parent 8339 f55869abb5c3
child 9467 4c041f1ee1b4
--- a/mercurial/sshrepo.py	Sat May 23 17:02:49 2009 +0200
+++ b/mercurial/sshrepo.py	Sat May 23 17:03:51 2009 +0200
@@ -8,7 +8,7 @@
 from node import bin, hex
 from i18n import _
 import repo, util, error
-import re
+import re, urllib
 
 class remotelock(object):
     def __init__(self, repo):
@@ -166,6 +166,19 @@
         except:
             self.abort(error.ResponseError(_("unexpected response:"), d))
 
+    def branchmap(self):
+        d = self.call("branchmap")
+        try:
+            branchmap = {}
+            for branchpart in d.splitlines():
+                branchheads = branchpart.split(' ')
+                branchname = urllib.unquote(branchheads[0])
+                branchheads = [bin(x) for x in branchheads[1:]]
+                branchmap[branchname] = branchheads
+            return branchmap
+        except:
+            raise error.ResponseError(_("unexpected response:"), d)
+
     def branches(self, nodes):
         n = " ".join(map(hex, nodes))
         d = self.call("branches", nodes=n)