mercurial/bundle2.py
changeset 21136 b6fd496e5c72
parent 21135 98fbf3adfd83
child 21137 341a083603a5
equal deleted inserted replaced
21135:98fbf3adfd83 21136:b6fd496e5c72
   342 
   342 
   343     def __init__(self, ui, capabilities=()):
   343     def __init__(self, ui, capabilities=()):
   344         self.ui = ui
   344         self.ui = ui
   345         self._params = []
   345         self._params = []
   346         self._parts = []
   346         self._parts = []
   347         self.capabilities = set(capabilities)
   347         self.capabilities = dict(capabilities)
   348 
   348 
   349     def addparam(self, name, value=None):
   349     def addparam(self, name, value=None):
   350         """add a stream level parameter"""
   350         """add a stream level parameter"""
   351         if not name:
   351         if not name:
   352             raise ValueError('empty parameter name')
   352             raise ValueError('empty parameter name')
   695 
   695 
   696 @parthandler('replycaps')
   696 @parthandler('replycaps')
   697 def handlereplycaps(op, inpart):
   697 def handlereplycaps(op, inpart):
   698     """Notify that a reply bundle should be created
   698     """Notify that a reply bundle should be created
   699 
   699 
   700     the part payload is a list of capabilities (one per line)"""
   700     The part payload is a list of capabilities (one per line)
   701     caps = [c for c in inpart.read().splitlines() if c]
   701     Capabilities may have values using a line of form::
       
   702 
       
   703         capability=value1,value2,value3
       
   704 
       
   705     The value are alway a list."""
       
   706     caps = {}
       
   707     for line in inpart.read().splitlines():
       
   708         if not line:
       
   709             continue
       
   710         if '=' not in line:
       
   711             key, vals = line, ()
       
   712         else:
       
   713             key, vals = line.split('=', 1)
       
   714             vals = vals.split(',')
       
   715         caps[key] = vals
   702     if op.reply is None:
   716     if op.reply is None:
   703         op.reply = bundle20(op.ui, caps)
   717         op.reply = bundle20(op.ui, caps)
   704 
   718