archival: don't try and fsdecode non-{bytes,str} objects
This function accepts both bytes and file-like objects.
Differential Revision: https://phab.mercurial-scm.org/D5073
--- a/mercurial/archival.py Sat Oct 13 06:34:53 2018 -0400
+++ b/mercurial/archival.py Sat Oct 13 07:51:22 2018 -0400
@@ -203,7 +203,9 @@
or compressed with deflate.'''
def __init__(self, dest, mtime, compress=True):
- self.z = zipfile.ZipFile(pycompat.fsdecode(dest), r'w',
+ if isinstance(dest, bytes):
+ dest = pycompat.fsdecode(dest)
+ self.z = zipfile.ZipFile(dest, r'w',
compress and zipfile.ZIP_DEFLATED or
zipfile.ZIP_STORED)