wireproto: make wirepeer look-before-you-leap on batching
This means that users of request batching don't need to worry
themselves with capability checking. Instead, they can just use
batching, and if the remote server doesn't support batching for some
reason the wirepeer code will transparently un-batch the requests.
This will allow for some slight simplification in a handful of
places. Prior to this change, largefiles would have been silently
broken against a server which did not support batching.
--- a/mercurial/wireproto.py Wed Aug 05 14:51:34 2015 -0400
+++ b/mercurial/wireproto.py Wed Aug 05 14:15:17 2015 -0400
@@ -149,7 +149,10 @@
class wirepeer(peer.peerrepository):
def batch(self):
- return remotebatch(self)
+ if self.capable('batch'):
+ return remotebatch(self)
+ else:
+ return peer.localbatch(self)
def _submitbatch(self, req):
cmds = []
for op, argsdict in req: