##// END OF EJS Templates
localrepo: use peer interfaces...
Gregory Szorc -
r33802:707750e5 default
parent child Browse files
Show More
@@ -49,6 +49,7 b' from . import ('
49 49 phases,
50 50 pushkey,
51 51 pycompat,
52 repository,
52 53 repoview,
53 54 revset,
54 55 revsetlang,
@@ -144,43 +145,52 b" moderncaps = {'lookup', 'branchmap', 'pu"
144 145 'unbundle'}
145 146 legacycaps = moderncaps.union({'changegroupsubset'})
146 147
147 class localpeer(peer.peerrepository):
148 class localpeer(repository.peer):
148 149 '''peer for a local repo; reflects only the most recent API'''
149 150
150 151 def __init__(self, repo, caps=None):
152 super(localpeer, self).__init__()
153
151 154 if caps is None:
152 155 caps = moderncaps.copy()
153 peer.peerrepository.__init__(self)
154 156 self._repo = repo.filtered('served')
155 self.ui = repo.ui
157 self._ui = repo.ui
156 158 self._caps = repo._restrictcapabilities(caps)
157 159
160 # Begin of _basepeer interface.
161
162 @util.propertycache
163 def ui(self):
164 return self._ui
165
166 def url(self):
167 return self._repo.url()
168
169 def local(self):
170 return self._repo
171
172 def peer(self):
173 return self
174
175 def canpush(self):
176 return True
177
158 178 def close(self):
159 179 self._repo.close()
160 180
161 def _capabilities(self):
162 return self._caps
163
164 def local(self):
165 return self._repo
181 # End of _basepeer interface.
166 182
167 def canpush(self):
168 return True
169
170 def url(self):
171 return self._repo.url()
172
173 def lookup(self, key):
174 return self._repo.lookup(key)
183 # Begin of _basewirecommands interface.
175 184
176 185 def branchmap(self):
177 186 return self._repo.branchmap()
178 187
179 def heads(self):
180 return self._repo.heads()
188 def capabilities(self):
189 return self._caps
181 190
182 def known(self, nodes):
183 return self._repo.known(nodes)
191 def debugwireargs(self, one, two, three=None, four=None, five=None):
192 """Used to test argument passing over the wire"""
193 return "%s %s %s %s %s" % (one, two, three, four, five)
184 194
185 195 def getbundle(self, source, heads=None, common=None, bundlecaps=None,
186 196 **kwargs):
@@ -197,8 +207,24 b' class localpeer(peer.peerrepository):'
197 207 else:
198 208 return changegroup.getunbundler('01', cb, None)
199 209
200 # TODO We might want to move the next two calls into legacypeer and add
201 # unbundle instead.
210 def heads(self):
211 return self._repo.heads()
212
213 def known(self, nodes):
214 return self._repo.known(nodes)
215
216 def listkeys(self, namespace):
217 return self._repo.listkeys(namespace)
218
219 def lookup(self, key):
220 return self._repo.lookup(key)
221
222 def pushkey(self, namespace, key, old, new):
223 return self._repo.pushkey(namespace, key, old, new)
224
225 def stream_out(self):
226 raise error.Abort(_('cannot perform stream clone against local '
227 'peer'))
202 228
203 229 def unbundle(self, cg, heads, url):
204 230 """apply a bundle on a repo
@@ -235,35 +261,38 b' class localpeer(peer.peerrepository):'
235 261 except error.PushRaced as exc:
236 262 raise error.ResponseError(_('push failed:'), str(exc))
237 263
238 def pushkey(self, namespace, key, old, new):
239 return self._repo.pushkey(namespace, key, old, new)
264 # End of _basewirecommands interface.
240 265
241 def listkeys(self, namespace):
242 return self._repo.listkeys(namespace)
266 # Begin of peer interface.
243 267
244 def debugwireargs(self, one, two, three=None, four=None, five=None):
245 '''used to test argument passing over the wire'''
246 return "%s %s %s %s %s" % (one, two, three, four, five)
268 def iterbatch(self):
269 return peer.localiterbatcher(self)
247 270
248 class locallegacypeer(localpeer):
271 # End of peer interface.
272
273 class locallegacypeer(repository.legacypeer, localpeer):
249 274 '''peer extension which implements legacy methods too; used for tests with
250 275 restricted capabilities'''
251 276
252 277 def __init__(self, repo):
253 localpeer.__init__(self, repo, caps=legacycaps)
278 super(locallegacypeer, self).__init__(repo, caps=legacycaps)
279
280 # Begin of baselegacywirecommands interface.
281
282 def between(self, pairs):
283 return self._repo.between(pairs)
254 284
255 285 def branches(self, nodes):
256 286 return self._repo.branches(nodes)
257 287
258 def between(self, pairs):
259 return self._repo.between(pairs)
260
261 288 def changegroup(self, basenodes, source):
262 289 return changegroup.changegroup(self._repo, basenodes, source)
263 290
264 291 def changegroupsubset(self, bases, heads, source):
265 292 return changegroup.changegroupsubset(self._repo, bases, heads, source)
266 293
294 # End of baselegacywirecommands interface.
295
267 296 # Increment the sub-version when the revlog v2 format changes to lock out old
268 297 # clients.
269 298 REVLOGV2_REQUIREMENT = 'exp-revlogv2.0'
General Comments 0
You need to be logged in to leave comments. Login now