diff -r b58d608ec6a0 -r 46ab0c6b28dc mercurial/subrepo.py --- a/mercurial/subrepo.py Wed Jan 30 16:54:34 2019 -0800 +++ b/mercurial/subrepo.py Wed Jan 30 19:29:32 2019 -0500 @@ -1284,7 +1284,7 @@ if stream: return p.stdout, None - retdata = p.stdout.read().strip() + retdata = pycompat.fsencode(p.stdout.read().strip()) # wait for the child to exit to avoid race condition. p.wait() @@ -1660,13 +1660,14 @@ for info in tar: if info.isdir(): continue - if match and not match(info.name): + bname = pycompat.fsencode(info.name) + if match and not match(bname): continue if info.issym(): data = info.linkname else: data = tar.extractfile(info).read() - archiver.addfile(prefix + self._path + '/' + info.name, + archiver.addfile(prefix + self._path + '/' + bname, info.mode, info.issym(), data) total += 1 progress.increment()