101
def tgz_exporter(tree, dest, root, subdir, filtered=False, force_mtime=None,
102
per_file_timestamps=False, fileobj=None):
101
def tgz_exporter(tree, dest, root, subdir, filtered=False, force_mtime=None, per_file_timestamps=False, fileobj=None):
103
102
"""Export this tree to a new tar file.
105
104
`dest` will be created holding the contents of this tree; if it
106
105
already exists, it will be clobbered, like with "tar -c".
109
109
if force_mtime is not None:
110
110
root_mtime = force_mtime
111
111
elif (getattr(tree, "repository", None) and
137
138
# Python < 2.7 doesn't support the mtime argument
138
139
zipstream = gzip.GzipFile(basename, 'w', fileobj=stream)
139
140
ball = tarfile.open(None, 'w|', fileobj=zipstream)
141
return export_tarball(tree, ball, root, subdir, filtered=filtered, force_mtime=force_mtime)
142
for _ in export_tarball(tree, ball, root, subdir, filtered, force_mtime):
148
152
def tbz_exporter(tree, dest, root, subdir, filtered=False, force_mtime=None,
163
167
# upstream python bug http://bugs.python.org/issue8396
164
168
# (fixed in Python 2.6.5 and 2.7b1)
165
169
ball = tarfile.open(dest.encode(osutils._fs_enc), 'w:bz2')
167
return export_tarball(tree, ball, root, subdir, filtered=filtered, force_mtime=force_mtime)
171
for _ in export_tarball(tree, ball, root, subdir, filtered, force_mtime):
172
178
def plain_tar_exporter(tree, dest, root, subdir, compression=None, filtered=False, force_mtime=None,
184
190
stream = open(dest, 'wb')
185
191
ball = tarfile.open(None, 'w|', stream)
187
export_tarball(tree, ball, root, subdir, filtered=filtered, force_mtime=force_mtime)
192
def tar_xz_exporter(tree, dest, root, subdir, filtered=False, force_mtime=None,
193
per_file_timestamps=False, fileobj=None):
194
return tar_lzma_exporter(tree, dest, root, subdir, filtered=filtered,
195
force_mtime=force_mtime,per_file_timestamps=per_file_timestamps, fileobj=fileobj, compression_format="xz")
198
def tar_lzma_exporter(tree, dest, root, subdir, filtered=False, force_mtime=None,
199
per_file_timestamps=False, fileobj=None, compression_format="alone"):
193
for _ in export_tarball(tree, ball, root, subdir, filtered, force_mtime):
200
def tar_xz_exporter(tree, dest, root, subdir, filtered=False, force_mtime=None, per_file_timestamps=False, fileobj=None):
202
return tar_lzma_exporter(tree, dest, root, subdir, filtered, force_mtime,per_file_timestamps, fileobj, "xz")
205
def tar_lzma_exporter(tree, dest, root, subdir, filtered=False, force_mtime=None, per_file_timestamps=False, fileobj=None, compression_format="alone"):
200
206
"""Export this tree to a new .tar.lzma file.
202
208
`dest` will be created holding the contents of this tree; if it
203
209
already exists, it will be clobbered, like with "tar -c".
206
213
raise errors.BzrError("Writing to stdout not supported for .tar.lzma")
216
223
stream = lzma.LZMAFile(dest.encode(osutils._fs_enc), 'w',
217
224
options={"format": compression_format})
218
225
ball = tarfile.open(None, 'w:', fileobj=stream)
220
return export_tarball(tree, ball, root, subdir, filtered=filtered, force_mtime=force_mtime)
227
for _ in export_tarball(tree, ball, root, subdir, filtered=filtered, force_mtime=force_mtime):