2016-11-23 12 views
0

На одном из моих Mercurial хранилищ, которые используются для работы, когда я бегу hg status я получаю:Mercurial падает из-за расширения ККТ - что я не позволил

** 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 в репозитории. Что тут происходит? Как я могу исправить/обойти эту проблему?

Примечания:

  • Я не корень на этой машине.
  • Моя ОС Fedora GNU/Linux 24.

ответ

1

Есть возможные общесистемные конфигурационные файлы. От hg help hgrc:

На Unix, следующие файлы консультации:

  • "/.hg/hgrc" (за хранилище)
  • "$ HOME/.hgrc" (за пользователем)
  • "/ и т.д./ртутный/hgrc" (за установкой)
  • "/etc/mercurial/hgrc.d/*.rc" (за установкой)
  • "/ и т.д./ртутный/hgrc" (для каждой системы)
  • "/etc/mercurial/hgrc.d/*.rc" (за системой)
  • "/default.d/*.rc" (по умолчанию)

Как пользователь конфигурационных файлов переопределение общесистемные файлы конфигурации можно отключить локально. Цитата https://www.mercurial-scm.org/wiki/UsingExtensions:

Чтобы явно отключить расширение включена в hgrc более широкого охвата, снабдите свой путь с:

[Расширения]

# отключив внутренний бар, проживающих в/путь/к /extension/bar.py

бар =! не /path/to/extension/bar.py

# Дитто, но ни один путь был поставлен для расширения Baz

baz =!

0

На самом деле вы уверены? Вы не делились тем, какой дистрибутив вы используете, например, в Debian qct - это собственный пакет. Я просто очистил его, так как у меня тоже была аналогичная ошибка.

+0

Это кажется более подходящим для комментария, но ... я использую Fedora. – einpoklum