py3: fix archive

Summary:
archive uses a formatter to produce it's metadat file. We need to use a
string io stream instead of bytes.

Reviewed By: quark-zju

Differential Revision: D19748163

fbshipit-source-id: fbd8c32066cfc4a234d9b51691717c7fce4c7c9a
This commit is contained in:
Durham Goode 2020-02-17 14:47:28 -08:00 committed by Facebook Github Bot
parent 48aec8ca41
commit 3a5728b32f
3 changed files with 5 additions and 6 deletions

View File

@ -32,8 +32,6 @@ from . import (
from .i18n import _
stringio = util.stringio
# from unzip source code:
_UNX_IFREG = 0x8000
_UNX_IFLNK = 0xA000
@ -102,7 +100,7 @@ def buildmetadata(ctx):
opts = {"template": repo.ui.config("experimental", "archivemetatemplate", default)}
out = util.stringio()
out = pycompat.stringutf8io()
fm = formatter.formatter(repo.ui, out, "archive", opts)
fm.startitem()
@ -116,7 +114,7 @@ def buildmetadata(ctx):
fm.data(dirty=dirty)
fm.end()
return out.getvalue()
return pycompat.encodeutf8(out.getvalue())
class tarit(object):
@ -184,7 +182,7 @@ class tarit(object):
i.size = 0
else:
i.mode = mode
data = stringio(data)
data = pycompat.stringio(data)
self.z.addfile(i, data)
def done(self):

View File

@ -84,6 +84,7 @@ if sys.version_info[0] >= 3:
sysexecutable = sys.executable
stringio = io.BytesIO
stringutf8io = io.StringIO
maplist = lambda *args: list(map(*args))
ziplist = lambda *args: list(zip(*args))
rawinput = input
@ -178,6 +179,7 @@ else:
sysexecutable = sys.executable
shlexsplit = shlex.split
stringio = cStringIO.StringIO
stringutf8io = cStringIO.StringIO
maplist = map
ziplist = zip
rawinput = raw_input # noqa

View File

@ -1,4 +1,3 @@
#require py2
#chg-compatible
$ disable treemanifest