mercurial/bundle2.py
changeset 21066 5ecfe76d0d96
parent 21062 e7c0a65a5c9c
child 21129 07bcbf326c8d
equal deleted inserted replaced
21065:f9a9a6d63e89 21066:5ecfe76d0d96
   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 will eventually yield parts)"""
   401 
   401 
   402     def __init__(self, ui, fp):
   402     def __init__(self, ui, fp, header=None):
       
   403         """If header is specified, we do not read it out of the stream."""
   403         self.ui = ui
   404         self.ui = ui
   404         super(unbundle20, self).__init__(fp)
   405         super(unbundle20, self).__init__(fp)
   405         header = self._readexact(4)
   406         if header is None:
   406         magic, version = header[0:2], header[2:4]
   407             header = self._readexact(4)
   407         if magic != 'HG':
   408             magic, version = header[0:2], header[2:4]
   408             raise util.Abort(_('not a Mercurial bundle'))
   409             if magic != 'HG':
   409         if version != '20':
   410                 raise util.Abort(_('not a Mercurial bundle'))
   410             raise util.Abort(_('unknown bundle version %s') % version)
   411             if version != '20':
       
   412                 raise util.Abort(_('unknown bundle version %s') % version)
   411         self.ui.debug('start processing of %s stream\n' % header)
   413         self.ui.debug('start processing of %s stream\n' % header)
   412 
   414 
   413     @util.propertycache
   415     @util.propertycache
   414     def params(self):
   416     def params(self):
   415         """dictionary of stream level parameters"""
   417         """dictionary of stream level parameters"""