equal
deleted
inserted
replaced
6 # GNU General Public License version 2, incorporated herein by reference. |
6 # GNU General Public License version 2, incorporated herein by reference. |
7 |
7 |
8 from node import bin, hex |
8 from node import bin, hex |
9 from i18n import _ |
9 from i18n import _ |
10 import repo, util, error |
10 import repo, util, error |
11 import re |
11 import re, urllib |
12 |
12 |
13 class remotelock(object): |
13 class remotelock(object): |
14 def __init__(self, repo): |
14 def __init__(self, repo): |
15 self.repo = repo |
15 self.repo = repo |
16 def release(self): |
16 def release(self): |
164 try: |
164 try: |
165 return map(bin, d[:-1].split(" ")) |
165 return map(bin, d[:-1].split(" ")) |
166 except: |
166 except: |
167 self.abort(error.ResponseError(_("unexpected response:"), d)) |
167 self.abort(error.ResponseError(_("unexpected response:"), d)) |
168 |
168 |
|
169 def branchmap(self): |
|
170 d = self.call("branchmap") |
|
171 try: |
|
172 branchmap = {} |
|
173 for branchpart in d.splitlines(): |
|
174 branchheads = branchpart.split(' ') |
|
175 branchname = urllib.unquote(branchheads[0]) |
|
176 branchheads = [bin(x) for x in branchheads[1:]] |
|
177 branchmap[branchname] = branchheads |
|
178 return branchmap |
|
179 except: |
|
180 raise error.ResponseError(_("unexpected response:"), d) |
|
181 |
169 def branches(self, nodes): |
182 def branches(self, nodes): |
170 n = " ".join(map(hex, nodes)) |
183 n = " ".join(map(hex, nodes)) |
171 d = self.call("branches", nodes=n) |
184 d = self.call("branches", nodes=n) |
172 try: |
185 try: |
173 br = [ tuple(map(bin, b.split(" "))) for b in d.splitlines() ] |
186 br = [ tuple(map(bin, b.split(" "))) for b in d.splitlines() ] |