--- a/mercurial/archival.py Fri Feb 11 22:24:10 2011 +0800
+++ b/mercurial/archival.py Fri Dec 24 15:23:01 2010 +0100
@@ -84,6 +84,7 @@
def __init__(self, dest, mtime, kind=''):
self.mtime = mtime
+ self.fileobj = None
def taropen(name, mode, fileobj=None):
if kind == 'gz':
@@ -93,8 +94,10 @@
gzfileobj = self.GzipFileWithTime(name, mode + 'b',
zlib.Z_BEST_COMPRESSION,
fileobj, timestamp=mtime)
+ self.fileobj = gzfileobj
return tarfile.TarFile.taropen(name, mode, gzfileobj)
else:
+ self.fileobj = fileobj
return tarfile.open(name, mode + kind, fileobj)
if isinstance(dest, str):
@@ -120,6 +123,8 @@
def done(self):
self.z.close()
+ if self.fileobj:
+ self.fileobj.close()
class tellable(object):
'''provide tell method for zipfile.ZipFile when writing to http