python - Mercurial 由于 qct 扩展而崩溃 - 我尚未启用该扩展

标签 python crash mercurial mercurial-extension

在我的一个 Mercurial 存储库上,该存储库曾经可以工作,当我运行 hg status 时,我得到:

** Unknown exception encountered with possibly-broken third-party extension qct
** which supports versions unknown of Mercurial.
** Please disable qct and try your action again.
** If that fixes the bug please report it to the extension author.
** Python 2.7.12 (default, Sep 29 2016, 13:30:34) [GCC 6.2.1 20160916 (Red Hat 6.2.1-2)]
** Mercurial Distributed SCM (version 3.7.3)
** Extensions loaded: qct, color, pager, extdiff, hgk, graphlog, hggit
Traceback (most recent call last):
  File "/usr/bin/hg", line 43, in <module>
    mercurial.dispatch.run()
  File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 54, in run
    sys.exit((dispatch(request(sys.argv[1:])) or 0) & 255)
  File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 120, in dispatch
    ret = _runcatch(req)
  File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 191, in _runcatch
    return _dispatch(req)
  File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 924, in _dispatch
    cmdpats, cmdoptions)
  File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 681, in runcommand
    ret = _runcommand(ui, options, cmd, d)
  File "/usr/lib64/python2.7/site-packages/mercurial/extensions.py", line 195, in closure
    return func(*(args + a), **kw)
  File "/usr/lib64/python2.7/site-packages/hgext/pager.py", line 143, in pagecmd
    return orig(ui, options, cmd, cmdfunc)
  File "/usr/lib64/python2.7/site-packages/mercurial/extensions.py", line 195, in closure
    return func(*(args + a), **kw)
  File "/usr/lib64/python2.7/site-packages/hgext/color.py", line 518, in colorcmd
    return orig(ui_, opts, cmd, cmdfunc)
  File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 1055, in _runcommand
    return checkargs()
  File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 1015, in checkargs
    return cmdfunc()
  File "/usr/lib64/python2.7/site-packages/mercurial/dispatch.py", line 921, in <lambda>
    d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
  File "/usr/lib64/python2.7/site-packages/mercurial/util.py", line 991, in check
    return func(*args, **kwargs)
  File "/usr/lib64/python2.7/site-packages/mercurial/commands.py", line 6365, in status
    opts.get('subrepos'))
  File "/usr/lib64/python2.7/site-packages/mercurial/localrepo.py", line 1826, in status
    listsubrepos)
  File "/usr/lib64/python2.7/site-packages/mercurial/context.py", line 351, in status
    listunknown)
  File "/usr/lib64/python2.7/site-packages/mercurial/context.py", line 1620, in _buildstatus
    s = self._dirstatestatus(match, listignored, listclean, listunknown)
  File "/usr/lib64/python2.7/site-packages/mercurial/context.py", line 1589, in _dirstatestatus
    listclean, listunknown)
  File "/usr/lib64/python2.7/site-packages/mercurial/dirstate.py", line 1134, in status
    full=full).iteritems():
  File "/usr/lib64/python2.7/site-packages/mercurial/dirstate.py", line 950, in walk
    ignore = self._ignore
  File "/usr/lib64/python2.7/site-packages/mercurial/scmutil.py", line 1203, in __get__
    entry.obj = self.func(obj)
  File "/usr/lib/python2.7/site-packages/hggit/gitdirstate.py", line 128, in _ignore
    extrapatterns=patterns)
  File "/usr/lib/python2.7/site-packages/hggit/gitdirstate.py", line 101, in gignore
    return ignorefunc
UnboundLocalError: local variable 'ignorefunc' referenced before assignment

现在,我还没有启用 qct 扩展,并且在我的 .hgrc 和存储库中的 .hg/hgrc 中都找不到它。这里发生了什么?我该如何解决/规避这个问题?

注释:

  • 我不是这台机器的 root 用户。
  • 我的操作系统是 Fedora GNU/Linux 24。

最佳答案

可能存在系统范围的配置文件。来自hg help hgrc:

On Unix, the following files are consulted:

  • "/.hg/hgrc" (per-repository)
  • "$HOME/.hgrc" (per-user)
  • "/etc/mercurial/hgrc" (per-installation)
  • "/etc/mercurial/hgrc.d/*.rc" (per-installation)
  • "/etc/mercurial/hgrc" (per-system)
  • "/etc/mercurial/hgrc.d/*.rc" (per-system)
  • "/default.d/*.rc" (defaults)

当用户配置文件覆盖系统范围的配置文件时,您可以在本地禁用它。引用自https://www.mercurial-scm.org/wiki/UsingExtensions :

To explicitly disable an extension enabled in an hgrc of broader scope, prepend its path with !:

[extensions]

# disabling extension bar residing in /path/to/extension/bar.py

bar = !/path/to/extension/bar.py

# ditto, but no path was supplied for extension baz

baz = !

关于python - Mercurial 由于 qct 扩展而崩溃 - 我尚未启用该扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40767591/

相关文章:

javascript - 这个 javascript 使我的浏览器崩溃

visual-studio-2010 - 频繁的VS 2010速度非常慢,并且在特定的解决方案/文件上崩溃?

mercurial - 如何创建我的 Mercurial 存储库的 zip 以供发布?

mercurial - 如何恢复上次提交并保留 Mercurial 中的更改?

python - Pandas 在多行中拆分行

visual-studio - VS 上的应用程序静默退出

python - (python-)sqlite3 : prevent COMMIT from resetting read cursor on unrelated temporary table

git - 我可以像 git 一样跳过 Mercurial 预提交钩子(Hook)吗?

python - 通过 pandas 重新格式化我的 csv 文件(将一组值转换为列,将另一组值与相应的值匹配)

python - SciPy.interpolate.interp1d 中的样条曲线使用哪些导数?