diff --git a/contrib/python3-whitelist b/contrib/python3-whitelist --- a/contrib/python3-whitelist +++ b/contrib/python3-whitelist @@ -679,6 +679,7 @@ test-strip-cross.t test-strip.t test-subrepo-deep-nested-change.t +test-subrepo-git.t test-subrepo-missing.t test-subrepo-paths.t test-subrepo-recursion.t diff --git a/mercurial/subrepo.py b/mercurial/subrepo.py --- a/mercurial/subrepo.py +++ b/mercurial/subrepo.py @@ -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()