Mercurial > hg
changeset 45083:3a6ec080b521
merge with stable
author | Augie Fackler <augie@google.com> |
---|---|
date | Mon, 13 Jul 2020 13:06:12 -0400 |
parents | b6afe1c52964 (current diff) 2c0043977b6d (diff) |
children | 07b3166e94ca |
files | mercurial/archival.py tests/hghave.py |
diffstat | 4 files changed, 26 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/hgdemandimport/__init__.py Fri Jul 10 10:12:56 2020 +0200 +++ b/hgdemandimport/__init__.py Mon Jul 13 13:06:12 2020 -0400 @@ -56,6 +56,7 @@ '__builtin__', 'builtins', 'urwid.command_map', # for pudb + 'lzma', } _pypy = '__pypy__' in sys.builtin_module_names
--- a/mercurial/archival.py Fri Jul 10 10:12:56 2020 +0200 +++ b/mercurial/archival.py Mon Jul 13 13:06:12 2020 -0400 @@ -189,7 +189,12 @@ name, pycompat.sysstr(mode), gzfileobj ) else: - return tarfile.open(name, pycompat.sysstr(mode + kind), fileobj) + try: + return tarfile.open( + name, pycompat.sysstr(mode + kind), fileobj + ) + except tarfile.CompressionError as e: + raise error.Abort(pycompat.bytestr(e)) if isinstance(dest, bytes): self.z = taropen(b'w:', name=dest)
--- a/tests/hghave.py Fri Jul 10 10:12:56 2020 +0200 +++ b/tests/hghave.py Mon Jul 13 13:06:12 2020 -0400 @@ -1061,3 +1061,14 @@ return matchoutput( '`rustup which --toolchain nightly rustfmt` --version', b'rustfmt' ) + + +@check("lzma", "python lzma module") +def has_lzma(): + try: + import _lzma + + _lzma.FORMAT_XZ + return True + except ImportError: + return False
--- a/tests/test-archive.t Fri Jul 10 10:12:56 2020 +0200 +++ b/tests/test-archive.t Mon Jul 13 13:06:12 2020 -0400 @@ -576,12 +576,18 @@ test xz support only available in Python 3.4 -#if py3 +#if lzma $ hg archive ../archive.txz $ which xz >/dev/null && xz -l ../archive.txz | head -n1 || true Strms Blocks Compressed Uncompressed Ratio Check Filename (xz !) $ rm -f ../archive.txz -#else +#endif +#if py3 no-lzma + $ hg archive ../archive.txz + abort: lzma module is not available + [255] +#endif +#if no-py3 $ hg archive ../archive.txz abort: xz compression is only available in Python 3 [255]