mercurial/bundle2.py
changeset 21129 07bcbf326c8d
parent 21066 5ecfe76d0d96
child 21130 1ff06386217f
equal deleted inserted replaced
21128:f4014f646f71 21129:07bcbf326c8d
   284     op.reply = bundle20(op.ui)
   284     op.reply = bundle20(op.ui)
   285     # todo:
   285     # todo:
   286     # - replace this is a init function soon.
   286     # - replace this is a init function soon.
   287     # - exception catching
   287     # - exception catching
   288     unbundler.params
   288     unbundler.params
   289     iterparts = iter(unbundler)
   289     iterparts = unbundler.iterparts()
   290     part = None
   290     part = None
   291     try:
   291     try:
   292         for part in iterparts:
   292         for part in iterparts:
   293             parttype = part.type
   293             parttype = part.type
   294             # part key are matched lower case
   294             # part key are matched lower case
   395 
   395 
   396 
   396 
   397 class unbundle20(unpackermixin):
   397 class unbundle20(unpackermixin):
   398     """interpret a bundle2 stream
   398     """interpret a bundle2 stream
   399 
   399 
   400     (this will eventually yield parts)"""
   400     This class is fed with a binary stream and yields parts through its
       
   401     `iterparts` methods."""
   401 
   402 
   402     def __init__(self, ui, fp, header=None):
   403     def __init__(self, ui, fp, header=None):
   403         """If header is specified, we do not read it out of the stream."""
   404         """If header is specified, we do not read it out of the stream."""
   404         self.ui = ui
   405         self.ui = ui
   405         super(unbundle20, self).__init__(fp)
   406         super(unbundle20, self).__init__(fp)
   448             self.ui.debug("ignoring unknown parameter %r\n" % name)
   449             self.ui.debug("ignoring unknown parameter %r\n" % name)
   449         else:
   450         else:
   450             raise KeyError(name)
   451             raise KeyError(name)
   451 
   452 
   452 
   453 
   453     def __iter__(self):
   454     def iterparts(self):
   454         """yield all parts contained in the stream"""
   455         """yield all parts contained in the stream"""
   455         # make sure param have been loaded
   456         # make sure param have been loaded
   456         self.params
   457         self.params
   457         self.ui.debug('start extraction of bundle2 parts\n')
   458         self.ui.debug('start extraction of bundle2 parts\n')
   458         headerblock = self._readpartheader()
   459         headerblock = self._readpartheader()