comparison mercurial/archival.py @ 36709:7f9a6f5f7612

archival: our filenames are bytes, not strs Differential Revision: https://phab.mercurial-scm.org/D2656
author Augie Fackler <augie@google.com>
date Sun, 04 Mar 2018 12:08:53 -0500
parents abf252a1c938
children 009da8c28e4d
comparison
equal deleted inserted replaced
36708:abf252a1c938 36709:7f9a6f5f7612
166 name, pycompat.sysstr(mode), gzfileobj) 166 name, pycompat.sysstr(mode), gzfileobj)
167 else: 167 else:
168 return tarfile.open( 168 return tarfile.open(
169 name, pycompat.sysstr(mode + kind), fileobj) 169 name, pycompat.sysstr(mode + kind), fileobj)
170 170
171 if isinstance(dest, str): 171 if isinstance(dest, bytes):
172 self.z = taropen('w:', name=dest) 172 self.z = taropen('w:', name=dest)
173 else: 173 else:
174 self.z = taropen('w|', fileobj=dest) 174 self.z = taropen('w|', fileobj=dest)
175 175
176 def addfile(self, name, mode, islink, data): 176 def addfile(self, name, mode, islink, data):
215 class zipit(object): 215 class zipit(object):
216 '''write archive to zip file or stream. can write uncompressed, 216 '''write archive to zip file or stream. can write uncompressed,
217 or compressed with deflate.''' 217 or compressed with deflate.'''
218 218
219 def __init__(self, dest, mtime, compress=True): 219 def __init__(self, dest, mtime, compress=True):
220 if not isinstance(dest, str): 220 if not isinstance(dest, bytes):
221 try: 221 try:
222 dest.tell() 222 dest.tell()
223 except (AttributeError, IOError): 223 except (AttributeError, IOError):
224 dest = tellable(dest) 224 dest = tellable(dest)
225 self.z = zipfile.ZipFile(pycompat.fsdecode(dest), r'w', 225 self.z = zipfile.ZipFile(pycompat.fsdecode(dest), r'w',