Search code examples
python-2.7ubuntumercurialphpstorm

PhpStorm Unknown exception encountered with possibly-broken third-party extension hg4ideapromptextension


I would like to know how to disable the third-party extension hg4ideapromptextension

I am using Xubuntu 17.10, Mercurial Distributed SCM (version 4.3.1), PhpStorm 10.0.4 and Python 2.7.14.

FYI, this was working fine until upgrade to Xubuntu 17.10

Here is the error I get

pushing to https://<user>@<my_redmine_server>

** Unknown exception encountered with possibly-broken third-party extension hg4ideapromptextension
** which supports versions unknown of Mercurial.
** Please disable hg4ideapromptextension and try your action again.
** If that fixes the bug please report it to the extension author.
** Python 2.7.14 (default, Sep 23 2017, 22:06:14) [GCC 7.2.0]
** Mercurial Distributed SCM (version 4.3.1)
** Extensions loaded: strip, mq, hg4ideapromptextension Traceback (most recent call last):   File "/usr/bin/hg", line 45, in <module>
    mercurial.dispatch.run()   File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 81, in run
    status = (dispatch(req) or 0) & 255   File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 162, in dispatch
    ret = _runcatch(req)   File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 302, in
_runcatch
    return _callcatch(ui, _runcatchfunc)   File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 310, in
_callcatch
    return scmutil.callcatch(ui, func)   File "/usr/lib/python2.7/dist-packages/mercurial/scmutil.py", line 150, in callcatch
    return func()   File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 292, in
_runcatchfunc
    return _dispatch(req)   File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 896, in
_dispatch
    cmdpats, cmdoptions)   File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 658, in runcommand
    ret = _runcommand(ui, options, cmd, d)   File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 904, in
_runcommand
    return cmdfunc()   File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 893, in <lambda>
    d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)   File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 1079, in check
    return func(*args, **kwargs)   File "/usr/lib/python2.7/dist-packages/mercurial/extensions.py", line 322, in closure
    return func(*(args + a), **kw)   File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 1079, in check
    return func(*args, **kwargs)   File "/usr/lib/python2.7/dist-packages/hgext/mq.py", line 3542, in mqcommand
    return orig(ui, repo, *args, **kwargs)   File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 1079, in check
    return func(*args, **kwargs)   File "/usr/lib/python2.7/dist-packages/mercurial/commands.py", line 4034, in push
    other = hg.peer(repo, opts, dest)   File "/usr/lib/python2.7/dist-packages/mercurial/hg.py", line 178, in peer
    return _peerorrepo(rui, path, create).peer()   File "/usr/lib/python2.7/dist-packages/mercurial/hg.py", line 153, in
_peerorrepo
    obj = _peerlookup(path).instance(ui, path, create)   File "/usr/lib/python2.7/dist-packages/mercurial/httppeer.py", line 391, in instance
    inst._fetchcaps()   File "/usr/lib/python2.7/dist-packages/mercurial/httppeer.py", line 123, in
_fetchcaps
    self.caps = set(self._call('capabilities').split())   File "/usr/lib/python2.7/dist-packages/mercurial/httppeer.py", line 301, in
_call
    fp = self._callstream(cmd, **args)   File "/usr/lib/python2.7/dist-packages/mercurial/httppeer.py", line 230, in
_callstream
    resp = self.urlopener.open(req)   File "/usr/lib/python2.7/urllib2.py", line 435, in open
    response = meth(req, response)   File "/usr/lib/python2.7/urllib2.py", line 548, in http_response
    'http', request, response, code, msg, hdrs)   File "/usr/lib/python2.7/urllib2.py", line 467, in error
    result = self._call_chain(*args)   File "/usr/lib/python2.7/urllib2.py", line 407, in _call_chain
    result = func(*args)   File "/usr/lib/python2.7/urllib2.py", line 909, in http_error_401
    url, req, headers)   File "/usr/lib/python2.7/dist-packages/mercurial/url.py", line 405, in http_error_auth_reqed
    self, auth_header, host, req, headers)   File "/usr/lib/python2.7/urllib2.py", line 887, in http_error_auth_reqed
    return self.retry_http_basic_auth(host, req, realm)   File "/usr/lib/python2.7/dist-packages/mercurial/url.py", line 408, in retry_http_basic_auth
    user, pw = self.passwd.find_user_password(realm, req.get_full_url())   File "/tmp/prompthooks2.py", line 208, in find_user_password
    user, password = urllib2.HTTPPasswordMgrWithDefaultRealm.find_user_password(self, realm, authuri) TypeError: unbound method find_user_password() must be called with HTTPPasswordMgrWithDefaultRealm instance as first argument (got passwordmgr instance instead)

I have tried cloning the hg-prompt python script and adding the path to my ~/.hgrc as per https://bitbucket.org/sjl/hg-prompt/src

I still get the error:

$ hg prompt "test"
hg: unknown command 'prompt'

As an aside - I notice now that PhpStorm isn't prompting me for my hg repo password on push..

I also have tried disabling the extension in .hgrc

[extensions]
hgview = !
prompt = !
hg4ideapromptextension = !

still no luck


Solution

  • This was the response from Eugene Morozov (IntelliJ)

    This is a bug that has already been fixed, but unfortunately the fix won't be backported to v10. https://youtrack.jetbrains.com/issue/IDEA-159546 Is there a chance you could update?