Mercurial > hg
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', |