# HG changeset patch # User FUJIWARA Katsunori # Date 2014-03-08 16:03:28 # Node ID 4fdd1172d37e505de657ebd5e5a9f2db9f2fa990 # Parent 6fb4c94ae300365541b28a26bc08b02966e2b297 bundlerepo: treat temporarily extracted bundle file via vfs diff --git a/mercurial/bundlerepo.py b/mercurial/bundlerepo.py --- a/mercurial/bundlerepo.py +++ b/mercurial/bundlerepo.py @@ -204,8 +204,8 @@ class bundlerepository(localrepo.localre f = util.posixfile(bundlename, "rb") self.bundle = changegroup.readbundle(f, bundlename) if self.bundle.compressed(): - fdtemp, temp = tempfile.mkstemp(prefix="hg-bundle-", - suffix=".hg10un", dir=self.path) + fdtemp, temp = self.vfs.mkstemp(prefix="hg-bundle-", + suffix=".hg10un") self.tempfile = temp fptemp = os.fdopen(fdtemp, 'wb') @@ -219,8 +219,8 @@ class bundlerepository(localrepo.localre finally: fptemp.close() - f = util.posixfile(self.tempfile, "rb") - self.bundle = changegroup.readbundle(f, bundlename) + f = self.vfs.open(self.tempfile, mode="rb") + self.bundle = changegroup.readbundle(f, bundlename, self.vfs) # dict with the mapping 'filename' -> position in the bundle self.bundlefilespos = {} @@ -280,7 +280,7 @@ class bundlerepository(localrepo.localre """Close assigned bundle file immediately.""" self.bundle.close() if self.tempfile is not None: - os.unlink(self.tempfile) + self.vfs.unlink(self.tempfile) if self._tempparent: shutil.rmtree(self._tempparent, True)