mercurial/bundlerepo.py
changeset 20981 4fdd1172d37e
parent 20790 49f2d5644f04
child 21063 7ca4f2049d3b
equal deleted inserted replaced
20980:6fb4c94ae300 20981:4fdd1172d37e
   202 
   202 
   203         self.tempfile = None
   203         self.tempfile = None
   204         f = util.posixfile(bundlename, "rb")
   204         f = util.posixfile(bundlename, "rb")
   205         self.bundle = changegroup.readbundle(f, bundlename)
   205         self.bundle = changegroup.readbundle(f, bundlename)
   206         if self.bundle.compressed():
   206         if self.bundle.compressed():
   207             fdtemp, temp = tempfile.mkstemp(prefix="hg-bundle-",
   207             fdtemp, temp = self.vfs.mkstemp(prefix="hg-bundle-",
   208                                             suffix=".hg10un", dir=self.path)
   208                                             suffix=".hg10un")
   209             self.tempfile = temp
   209             self.tempfile = temp
   210             fptemp = os.fdopen(fdtemp, 'wb')
   210             fptemp = os.fdopen(fdtemp, 'wb')
   211 
   211 
   212             try:
   212             try:
   213                 fptemp.write("HG10UN")
   213                 fptemp.write("HG10UN")
   217                         break
   217                         break
   218                     fptemp.write(chunk)
   218                     fptemp.write(chunk)
   219             finally:
   219             finally:
   220                 fptemp.close()
   220                 fptemp.close()
   221 
   221 
   222             f = util.posixfile(self.tempfile, "rb")
   222             f = self.vfs.open(self.tempfile, mode="rb")
   223             self.bundle = changegroup.readbundle(f, bundlename)
   223             self.bundle = changegroup.readbundle(f, bundlename, self.vfs)
   224 
   224 
   225         # dict with the mapping 'filename' -> position in the bundle
   225         # dict with the mapping 'filename' -> position in the bundle
   226         self.bundlefilespos = {}
   226         self.bundlefilespos = {}
   227 
   227 
   228     @localrepo.unfilteredpropertycache
   228     @localrepo.unfilteredpropertycache
   278 
   278 
   279     def close(self):
   279     def close(self):
   280         """Close assigned bundle file immediately."""
   280         """Close assigned bundle file immediately."""
   281         self.bundle.close()
   281         self.bundle.close()
   282         if self.tempfile is not None:
   282         if self.tempfile is not None:
   283             os.unlink(self.tempfile)
   283             self.vfs.unlink(self.tempfile)
   284         if self._tempparent:
   284         if self._tempparent:
   285             shutil.rmtree(self._tempparent, True)
   285             shutil.rmtree(self._tempparent, True)
   286 
   286 
   287     def cancopy(self):
   287     def cancopy(self):
   288         return False
   288         return False