diff -r 6b1eb4c610b4 -r 8381126bf43c mercurial/url.py --- a/mercurial/url.py Sat Mar 03 14:24:21 2018 -0500 +++ b/mercurial/url.py Sat Mar 03 14:28:51 2018 -0500 @@ -67,7 +67,7 @@ user, passwd = auth.get('username'), auth.get('password') self.ui.debug("using auth.%s.* for authentication\n" % group) if not user or not passwd: - u = util.url(authuri) + u = util.url(pycompat.bytesurl(authuri)) u.query = None if not self.ui.interactive(): raise error.Abort(_('http authorization required for %s') % @@ -75,7 +75,7 @@ self.ui.write(_("http authorization required for %s\n") % util.hidepassword(bytes(u))) - self.ui.write(_("realm: %s\n") % realm) + self.ui.write(_("realm: %s\n") % pycompat.bytesurl(realm)) if user: self.ui.write(_("user: %s\n") % user) else: @@ -424,8 +424,8 @@ user, pw = self.passwd.find_user_password( realm, urllibcompat.getfullurl(req)) if pw is not None: - raw = "%s:%s" % (user, pw) - auth = 'Basic %s' % base64.b64encode(raw).strip() + raw = "%s:%s" % (pycompat.bytesurl(user), pycompat.bytesurl(pw)) + auth = r'Basic %s' % pycompat.strurl(base64.b64encode(raw).strip()) if req.get_header(self.auth_header, None) == auth: return None self.auth = auth