~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/export/tar_exporter.py

  • Committer: Jelmer Vernooij
  • Date: 2011-03-13 20:47:03 UTC
  • mto: This revision was merged to the branch mainline in revision 5724.
  • Revision ID: jelmer@samba.org-20110313204703-k1i19fzqd1wcbavr
Support creating .tar.xz files.

Show diffs side-by-side

added added

removed removed

Lines of Context:
105
105
    else:
106
106
        stream = gzip.GzipFile(dest.encode(osutils._fs_enc), 'w',
107
107
            mtime=root_mtime)
108
 
    ball = tarfile.open(None, 'w:', fileobj=stream)
 
108
    ball = tarfile.open(None, 'w|', fileobj=stream)
109
109
    export_tarball(tree, ball, root, subdir, filtered=filtered,
110
110
                   force_mtime=force_mtime)
111
111
    ball.close()
154
154
    export_tarball(tree, ball, root, subdir, filtered=filtered,
155
155
                   force_mtime=force_mtime)
156
156
    ball.close()
 
157
 
 
158
 
 
159
def txz_exporter(tree, dest, root, subdir, filtered=False, force_mtime=None):
 
160
    """Export this tree to a new .tar.xz file.
 
161
 
 
162
    `dest` will be created holding the contents of this tree; if it
 
163
    already exists, it will be clobbered, like with "tar -c".
 
164
    """
 
165
    try:
 
166
        import lzma
 
167
    except ImportError, e:
 
168
        raise errors.DependencyNotPresent('lzma', e)
 
169
    if dest == '-':
 
170
        raise errors.BzrError("Writing to stdout not supported for .tar.xz")
 
171
 
 
172
    stream = lzma.LZMAFile(dest.encode(osutils._fs_enc), 'w')
 
173
    ball = tarfile.open(None, 'w|', fileobj=stream)
 
174
    export_tarball(tree, ball, root, subdir, filtered=filtered,
 
175
                   force_mtime=force_mtime)
 
176
    ball.close()
 
177
 
 
178
 
 
179