[PATCH] archive: add XZ support if built with Python 3
David Demelier
markand at malikania.fr
Tue Sep 17 10:48:24 UTC 2019
# HG changeset patch
# User David Demelier <markand at malikania.fr>
# Date 1568717251 0
# Tue Sep 17 10:47:31 2019 +0000
# Node ID c0398aef7f0977b5f076b15638762773dde7d5b6
# Parent 181ee2118a96c4b52bbd6d7b5a47e87f2e1d77e9
archive: add XZ support if built with Python 3
diff -r 181ee2118a96 -r c0398aef7f09 mercurial/archival.py
--- a/mercurial/archival.py Wed Sep 11 15:03:08 2019 -0700
+++ b/mercurial/archival.py Tue Sep 17 10:47:31 2019 +0000
@@ -67,6 +67,7 @@
'tbz2': ['.tbz2', '.tar.bz2'],
'tgz': ['.tgz', '.tar.gz'],
'zip': ['.zip'],
+ 'txz': ['.txz', '.tar.xz']
}
def guesskind(dest):
@@ -270,6 +271,7 @@
'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 @@
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'))
diff -r 181ee2118a96 -r c0398aef7f09 mercurial/commands.py
--- a/mercurial/commands.py Wed Sep 11 15:03:08 2019 -0700
+++ b/mercurial/commands.py Tue Sep 17 10:47:31 2019 +0000
@@ -514,6 +514,7 @@
:``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
diff -r 181ee2118a96 -r c0398aef7f09 tests/test-archive.t
--- a/tests/test-archive.t Wed Sep 11 15:03:08 2019 -0700
+++ b/tests/test-archive.t Tue Sep 17 10:47:31 2019 +0000
@@ -566,6 +566,21 @@
*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 (py3 !)
+ $ rm -f ../archive.txz
+#endif
+
+#if no-py3
+ $ 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
@@ -607,3 +622,4 @@
456789012
$ cd ..
+
More information about the Mercurial-devel
mailing list