Commit 98288965 authored by David Demelier's avatar David Demelier
Browse files

archive: add XZ support if built with Python 3

parent 06080afd0565
......@@ -67,6 +67,7 @@ exts = {
'tbz2': ['.tbz2', '.tar.bz2'],
'tgz': ['.tgz', '.tar.gz'],
'zip': ['.zip'],
'txz': ['.txz', '.tar.xz']
}
def guesskind(dest):
......@@ -270,6 +271,7 @@ archivers = {
'tar': tarit,
'tbz2': lambda name, mtime: tarit(name, mtime, 'bz2'),
'tgz': lambda name, mtime: tarit(name, mtime, 'gz'),
'txz': lambda name, mtime: tarit(name, mtime, 'xz'),
'uzip': lambda name, mtime: zipit(name, mtime, False),
'zip': zipit,
}
......@@ -295,6 +297,9 @@ def archive(repo, dest, node, kind, decode=True, match=None,
subrepos tells whether to include subrepos.
'''
if kind == 'txz' and not pycompat.ispy3:
raise error.Abort(_('xz compression is only available in Python 3'))
if kind == 'files':
if prefix:
raise error.Abort(_('cannot give prefix when archiving to files'))
......
......@@ -514,6 +514,7 @@ def archive(ui, repo, dest, **opts):
:``tar``: tar archive, uncompressed
:``tbz2``: tar archive, compressed using bzip2
:``tgz``: tar archive, compressed using gzip
:``txz``: tar archive, compressed using lzma (only in Python 3)
:``uzip``: zip archive, uncompressed
:``zip``: zip archive, compressed using deflate
......
......@@ -566,6 +566,19 @@ old file -- date clamped to 1980
*172*80*00:00*old/.hg_archival.txt (glob)
*0*80*00:00*old/old (glob)
test xz support only available in Python 3.4
#if py3
$ hg archive ../archive.txz
$ xz -l ../archive.txz | head -n1
Strms Blocks Compressed Uncompressed Ratio Check Filename
$ rm -f ../archive.txz
#else
$ hg archive ../archive.txz
abort: xz compression is only available in Python 3
[255]
#endif
show an error when a provided pattern matches no files
$ hg archive -I file_that_does_not_exist.foo ../empty.zip
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment