comparison mercurial/changegroup.py @ 20978:5b58714e97ed

changegroup: add "vfs" argument to "readbundle()" to pass relative filename
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
date Sun, 09 Mar 2014 01:03:28 +0900
parents c20f4898631e
children 1e28ec9744bf
comparison
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)