diff --git a/contrib/python3-whitelist b/contrib/python3-whitelist --- a/contrib/python3-whitelist +++ b/contrib/python3-whitelist @@ -151,6 +151,7 @@ test-glog-topological.t test-gpg.t test-graft.t +test-hg-parseurl.py test-hghave.t test-hgignore.t test-hgk.t diff --git a/mercurial/hgweb/hgwebdir_mod.py b/mercurial/hgweb/hgwebdir_mod.py --- a/mercurial/hgweb/hgwebdir_mod.py +++ b/mercurial/hgweb/hgwebdir_mod.py @@ -422,8 +422,12 @@ if real: # Re-parse the WSGI environment to take into account our # repository path component. + uenv = req.rawenv + if pycompat.ispy3: + uenv = {k.decode('latin1'): v for k, v in + uenv.iteritems()} req = requestmod.parserequestfromenv( - req.rawenv, reponame=virtualrepo, + uenv, reponame=virtualrepo, altbaseurl=self.ui.config('web', 'baseurl')) try: # ensure caller gets private copy of ui