mercurial/changegroup.py
changeset 20978 5b58714e97ed
parent 20976 c20f4898631e
child 20999 1e28ec9744bf
equal deleted inserted replaced
20977:a57dcd11be34 20978:5b58714e97ed
   212             if len(d) < n:
   212             if len(d) < n:
   213                 d += readexactly(self._fh, n - len(d))
   213                 d += readexactly(self._fh, n - len(d))
   214             return d
   214             return d
   215         return readexactly(self._fh, n)
   215         return readexactly(self._fh, n)
   216 
   216 
   217 def readbundle(fh, fname):
   217 def readbundle(fh, fname, vfs=None):
   218     header = readexactly(fh, 6)
   218     header = readexactly(fh, 6)
   219 
   219 
   220     if not fname:
   220     if not fname:
   221         fname = "stream"
   221         fname = "stream"
   222         if not header.startswith('HG') and header.startswith('\0'):
   222         if not header.startswith('HG') and header.startswith('\0'):
   223             fh = headerlessfixup(fh, header)
   223             fh = headerlessfixup(fh, header)
   224             header = "HG10UN"
   224             header = "HG10UN"
       
   225     elif vfs:
       
   226         fname = vfs.join(fname)
   225 
   227 
   226     magic, version, alg = header[0:2], header[2:4], header[4:6]
   228     magic, version, alg = header[0:2], header[2:4], header[4:6]
   227 
   229 
   228     if magic != 'HG':
   230     if magic != 'HG':
   229         raise util.Abort(_('%s: not a Mercurial bundle') % fname)
   231         raise util.Abort(_('%s: not a Mercurial bundle') % fname)