https://bz.mercurial-scm.org/show_bug.cgi?id=6629

            Bug ID: 6629
           Summary: Special char in password not supported
           Product: Mercurial
           Version: 6.0.1
          Hardware: PC
                OS: Linux
            Status: UNCONFIRMED
          Severity: feature
          Priority: wish
         Component: Mercurial
          Assignee: bugzi...@mercurial-scm.org
          Reporter: aklitz...@gmail.com
                CC: mercurial-devel@mercurial-scm.org
    Python Version: ---

If we use a special char in a password for http authentication we get the
following error.

** Unknown exception encountered with possibly-broken third-party extension
"commitsigs" (version N/A)
** which supports versions unknown of Mercurial.
** Please disable "commitsigs" and try your action again.
** If that fixes the bug please report it to Der Autor der Erweiterung
** Python 3.10.1 (main, Dec 18 2021, 23:53:45) [GCC 11.1.0]
** Mercurial Distributed SCM (Version 6.0)
** Erweiterungen geladen: absorb, churn, commitsigs, convert, extdiff, gpg,
histedit, largefiles, patchbomb, purge, rebase, record, releasenotes, schemes,
share, show, strip
Traceback (most recent call last):
  File "/usr/bin/hg", line 61, in <module>
    dispatch.run()
  File "/usr/lib/python3.10/site-packages/mercurial/dispatch.py", line 144, in
run
    status = dispatch(req)
  File "/usr/lib/python3.10/site-packages/mercurial/dispatch.py", line 250, in
dispatch
    status = _rundispatch(req)
  File "/usr/lib/python3.10/site-packages/mercurial/dispatch.py", line 294, in
_rundispatch
    ret = _runcatch(req) or 0
  File "/usr/lib/python3.10/site-packages/mercurial/dispatch.py", line 470, in
_runcatch
    return _callcatch(ui, _runcatchfunc)
  File "/usr/lib/python3.10/site-packages/mercurial/dispatch.py", line 480, in
_callcatch
    return scmutil.callcatch(ui, func)
  File "/usr/lib/python3.10/site-packages/mercurial/scmutil.py", line 153, in
callcatch
    return func()
  File "/usr/lib/python3.10/site-packages/mercurial/dispatch.py", line 460, in
_runcatchfunc
    return _dispatch(req)
  File "/usr/lib/python3.10/site-packages/mercurial/dispatch.py", line 1273, in
_dispatch
    return runcommand(
  File "/usr/lib/python3.10/site-packages/mercurial/dispatch.py", line 918, in
runcommand
    ret = _runcommand(ui, options, cmd, d)
  File "/usr/lib/python3.10/site-packages/mercurial/dispatch.py", line 1285, in
_runcommand
    return cmdfunc()
  File "/usr/lib/python3.10/site-packages/mercurial/dispatch.py", line 1271, in
<lambda>
    d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
  File "/usr/lib/python3.10/site-packages/mercurial/util.py", line 1888, in
check
    return func(*args, **kwargs)
  File "/usr/lib/python3.10/site-packages/mercurial/util.py", line 1888, in
check
    return func(*args, **kwargs)
  File "/usr/lib/python3.10/site-packages/hgext/share.py", line 163, in clone
    return orig(ui, source, *args, **opts)
  File "/usr/lib/python3.10/site-packages/mercurial/util.py", line 1888, in
check
    return func(*args, **kwargs)
  File "/usr/lib/python3.10/site-packages/mercurial/util.py", line 1888, in
check
    return func(*args, **kwargs)
  File "/usr/lib/python3.10/site-packages/hgext/largefiles/overrides.py", line
1091, in overrideclone
    return orig(ui, source, dest, **opts)
  File "/usr/lib/python3.10/site-packages/mercurial/util.py", line 1888, in
check
    return func(*args, **kwargs)
  File "/usr/lib/python3.10/site-packages/mercurial/commands.py", line 1955, in
clone
    r = hg.clone(
  File "/usr/lib/python3.10/site-packages/hgext/largefiles/overrides.py", line
1096, in hgclone
    result = orig(ui, opts, *args, **kwargs)
  File "/usr/lib/python3.10/site-packages/mercurial/hg.py", line 675, in clone
    srcpeer = peer(ui, peeropts, source)
  File "/usr/lib/python3.10/site-packages/mercurial/hg.py", line 244, in peer
    return _peerorrepo(
  File "/usr/lib/python3.10/site-packages/mercurial/hg.py", line 192, in
_peerorrepo
    obj = _peerlookup(path).instance(
  File "/usr/lib/python3.10/site-packages/mercurial/httppeer.py", line 1113, in
instance
    inst = makepeer(ui, path)
  File "/usr/lib/python3.10/site-packages/mercurial/httppeer.py", line 1074, in
makepeer
    respurl, info = performhandshake(ui, url, opener, requestbuilder)
  File "/usr/lib/python3.10/site-packages/mercurial/httppeer.py", line 991, in
performhandshake
    resp = sendrequest(ui, opener, req)
  File "/usr/lib/python3.10/site-packages/mercurial/httppeer.py", line 301, in
sendrequest
    res = opener.open(req)
  File "/usr/lib/python3.10/urllib/request.py", line 525, in open
    response = meth(req, response)
  File "/usr/lib/python3.10/urllib/request.py", line 634, in http_response
    response = self.parent.error(
  File "/usr/lib/python3.10/urllib/request.py", line 557, in error
    result = self._call_chain(*args)
  File "/usr/lib/python3.10/urllib/request.py", line 496, in _call_chain
    result = func(*args)
  File "/usr/lib/python3.10/urllib/request.py", line 1056, in http_error_401
    response = self.http_error_auth_reqed('www-authenticate',
  File "/usr/lib/python3.10/site-packages/mercurial/url.py", line 524, in
http_error_auth_reqed
    return urlreq.httpbasicauthhandler.http_error_auth_reqed(
  File "/usr/lib/python3.10/urllib/request.py", line 1005, in
http_error_auth_reqed
    return self.retry_http_basic_auth(host, req, realm)
  File "/usr/lib/python3.10/site-packages/mercurial/url.py", line 529, in
retry_http_basic_auth
    user, pw = self.passwd.find_user_password(
  File "/usr/lib/python3.10/site-packages/mercurial/url.py", line 108, in
find_user_password
    self.passwddb.add_password(realm, authuri, user, passwd)
  File "/usr/lib/python3.10/site-packages/mercurial/ui.py", line 189, in
add_password
    _maybestrurl(passwd),
  File "/usr/lib/python3.10/site-packages/mercurial/ui.py", line 166, in
_maybestrurl
    return pycompat.rapply(pycompat.strurl, maybebytes)
  File "/usr/lib/python3.10/site-packages/mercurial/pycompat.py", line 98, in
rapply
    return _rapply(f, xs)
  File "/usr/lib/python3.10/site-packages/mercurial/pycompat.py", line 74, in
_rapply
    return f(xs)
  File "/usr/lib/python3.10/site-packages/mercurial/pycompat.py", line 293, in
strurl
    return url.decode('ascii')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 4: ordinal
not in range(128)

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to