Git -gui сбой команд на macOS Sierra - программирование
Подтвердить что ты не робот

Git -gui сбой команд на macOS Sierra

После обновления до macOS Sierra команда git-gui вылетает с ошибкой:

Wish[23862:202062] *** Terminating app due to uncaught exception 'CALayerInvalidGeometry', reason: 'CALayer position contains NaN: [0 nan]'
*** First throw call stack:
(
    0   CoreFoundation                      0x00007fff8cd9252b __exceptionPreprocess + 171
    1   libobjc.A.dylib                     0x00007fffa146acad objc_exception_throw + 48
    2   CoreFoundation                      0x00007fff8ce10a0d +[NSException raise:format:] + 205
    3   QuartzCore                          0x00007fff92938980 _ZN2CA5Layer12set_positionERKNS_4Vec2IdEEb + 152
    4   QuartzCore                          0x00007fff92938af5 -[CALayer setPosition:] + 44
    5   QuartzCore                          0x00007fff9293914b -[CALayer setFrame:] + 644
    6   CoreUI                              0x00007fff986e2112 _ZN20CUICoreThemeRenderer26MakeOrUpdateScrollBarLayerEPK13CUIDescriptoraPP7CALayer + 1284
    7   CoreUI                              0x00007fff986de317 _ZN20CUICoreThemeRenderer19CreateOrUpdateLayerEPK13CUIDescriptorPP7CALayer + 1755
    8   CoreUI                              0x00007fff986604d1 _ZN11CUIRenderer19CreateOrUpdateLayerEPK14__CFDictionaryPP7CALayer + 175
    9   CoreUI                              0x00007fff98663185 CUICreateOrUpdateLayer + 221
    10  AppKit                              0x00007fff8b3c7623 -[NSCompositeAppearance _callCoreUIWithBlock:options:] + 226
    11  AppKit                              0x00007fff8aa74a9d -[NSAppearance _createOrUpdateLayer:options:] + 76
    12  AppKit                              0x00007fff8aced143 -[NSScrollerImp _animateToRolloverState] + 274
    13  AppKit                              0x00007fff8acacb79 __49-[NSScrollerImp _installDelayedRolloverAnimation]_block_invoke + 673
    14  AppKit                              0x00007fff8ab73331 -[NSScrollerImp _doWork:] + 15
    15  Foundation                          0x00007fff8e770c88 __NSFireDelayedPerform + 417
    16  CoreFoundation                      0x00007fff8cd11e14 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 20
    17  CoreFoundation                      0x00007fff8cd11a9f __CFRunLoopDoTimer + 1071
    18  CoreFoundation                      0x00007fff8cd115fa __CFRunLoopDoTimers + 298
    19  CoreFoundation                      0x00007fff8cd09021 __CFRunLoopRun + 2065
    20  CoreFoundation                      0x00007fff8cd085b4 CFRunLoopRunSpecific + 420
    21  Tcl                                 0x0000000101834b43 Tcl_WaitForEvent + 314
    22  Tcl                                 0x00000001018045cd Tcl_DoOneEvent + 274
    23  Tk                                  0x0000000101672f4f Tk_MainLoop + 33
    24  Tk                                  0x000000010167ea5b Tk_MainEx + 1566
    25  Wish                                0x0000000101658542 Wish + 9538
    26  libdyld.dylib                       0x00007fffa1d48255 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
error: git-gui died of signal 6

У кого-то есть такая же проблема и решение для этого?

4b9b3361

Ответ 1

Вместо использования MacOS tcl-tk по умолчанию используйте последний tcl-tk (8.6.6) из Homebrew, а затем привяжите его силой, например:

brew install tcl-tk
brew link tcl-tk --force

Ответ 2

Существует проблема с Tk 8.5 на MacOS Sierra. Вы можете заменить Tk Wish 8.5 на Tk Wish 8.4

cp /System/Library/Frameworks/Tk.framework/Versions/8.4/Resources/Wish.app/Contents/MacOS/Wish /usr/local/Cellar/git/2.10.1/share/git-gui/lib/Git\ Gui.app/Contents/MacOS/

источник: https://github.com/git/git-scm.com/issues/853

UPD: Обратите внимание на замену версии git в пути cp на текущую версию

Ответ 3

Try: git config --local --unset gui.geometry
Эта ошибка возникает из-за того, что диспетчер Tk Geometry не работает из-за более старой версии или если он поврежден.

Если приведенная выше команда не работает, попробуйте обновить xcode: xcode-select --install

Ответ 4

Мое решение, должно работать для git загрузки из https://git-scm.com/

brew install homebrew/dupes/tcl-tk

cd to /usr/local/git/share/git-gui/lib/Git Gui.app/Contents/MacOS и резервное копирование оригинального пожелания

cp /usr/local/Cellar/tcl-tk/8.6.6/bin/wish8.6 /usr/local/git/share/git-gui/lib/Git Gui.app/Contents/MacOS/Wish

Ответ 5

Я собрал вместе кучу ответов, так как я использую GIT и TCL через brew:

  • cd "/usr/local/Cellar/git/2.10.2/share/git-gui/lib/Git Gui.app/Contents/MacOS"
  • mv Wish Wish.bkp
  • ln -vs /usr/local/Cellar/tcl-tk/8.6.6/bin/wish8.6 Wish

Со временем, очевидно, номера версий могут меняться

Ответ 7

Я считаю следующие цели, чтобы составить полное решение проблемы:

  • "Нук с орбиты" уверенность в решении этого в аккуратном и линейном режиме

  • Не заканчивайте уродливые шрифты из устаревшего Apple Tcl/Tk

  • Развяжите свой git gui от Apple, отправленного Tcl/Tk

    • Положитесь на Homebrew для установки Tcl/Tk.

Ниже вы найдете шаг за шагом, чтобы достичь этого:

  • Получить дублированный Tcl/Tk из Homebrew

    brew install tcl-tk
    
  • Добавьте неровную установку Tcl/Tk к пути (-ам) до сломанной реализации Apple

    • Это предполагает, что ваши пути Homebrew имеют приоритет над вашими системными путями.
    • Это должно быть в обычной установке Homebrew
    • Это не удастся, если у вас есть конфликтующие файлы из других установленных рецептов homebrew.
    • Например the_platinum_searcher предоставляет pt, который конфликтует с
    • Я рекомендую ripgrep для обойти этот случай

      brew link --force tcl-tk
      
  • Исправьте установку gitk, переустановив ее на недробную версию Homebrew

    • Это может быть необязательно, но ref. первая заявленная цель выше

      brew reinstall git
      
  • Скопируйте новый бинарный файл желаний из вашей установки Tcl/Tk Homebrew на сломанный пакет из Apple в пакете git Gui.app

    • Это слепо полагается на вывод homebrew info <package>, чтобы не изменять

      cp "$(which wish)" "$(brew info git | grep Cellar | cut -d' ' -f1)/share/git-gui/lib/Git Gui.app/Contents/MacOS/Wish"
      

Последний бит может быть разумным вставить псевдоним в ваш ~/.bashrc и/или эквивалент, поскольку его нужно будет повторять каждый раз, когда вы получаете новую версию git из Homebrew.

alias fix-gitgui='cp "$(which wish)" "$(brew info git | grep Cellar | cut -d" " -f1)/share/git-gui/lib/Git Gui.app/Contents/MacOS/Wish"'

Я не совсем уверен, почему цитирование символа разделителя полей для разреза, используемого выше, работает с таким псевдонимом с осторожностью, поскольку это может очень сильно зависеть от точной версии bash.

Ответ 8

Он работает для меня: загрузите и установите последнюю версию TCL (я использовал 8.6.4) http://www.activestate.com/activetcl/downloads

Я также загрузил и установил последнюю версию (2.10.1) из git https://git-scm.com/

Убедитесь, что после изменения размера окна gitk не сработает.

Ответ 9

@sbondaryev answer (39966704) не работал у меня, и мне еще предстоит попробовать @ssahu (40119030). Однако трюк, который я описываю здесь, разбился гораздо реже (10% времени или около того) для меня. И это мешает мне слишком много шутить с вещами - надеюсь, проблема скоро будет исправлена.

  • Сбой, казалось, произошел при изменении размера окна (90% времени). Но я нашел его слишком маленьким, чтобы работать с ним и хотел его изменить.
  • vi .git/config
  • отредактируйте GUI geography, чтобы создать размер окна, который работает. Я все еще держал его маленьким, хотя я подозреваю, что будет размер, над которым всегда будет происходить сбой.

Ответ 10

My Sierra (обновлено с 10.11.6) имеет Tcl/Tk Current, указывающий на 8.5, и я наблюдал ту же ошибку после обновления, используя нашу программу Python с использованием Tkinter. Я не использую Wish. У меня не было никакой помощи от установки Python 2.7 32bit, связанной с Tcl/Tk 8.4, поскольку у этого не было "плитки". Поэтому я заварил свой Python, связав его с Tcl/Tk 8.6:

Это для brew для использования предварительно скомпилированных бутылок вместо создания из источников, если специально не указано иное, поэтому не вызывает проблем:

xcode-select --install

Затем установите Tcl/Tk:

brew install homebrew/dupes/tcl-tk

Если вы не установили Python изначально с -with-tcl-tk, тогда:

brew uninstall python

Наконец:

brew install python --with-tcl-tk

После этого у меня есть Python, который связан с Tcl/Tk 8.6 и выглядит так, как будто я избавился от этой ошибки.

Ответ 11

Это было разрешено для самых последних исправлений для macOS Sierra (10.12.2 и выше), и никаких дальнейших действий не требуется.

Ответ 12

После многого борьбы это решение решает мою проблему:

$ brew upgrade tcl-tk

Если это актуально, и это не работает, попробуйте:

$ brew uninstall tcl-tk
$ brew install tcl-tk

Я пробовал каждое решение в Интернете, но только это решает проблему. Ура!

Ответ 13

В High Sierra (10.13) у меня была такая же проблема с git gui.

Я решил проблему, обновив git с версии 2.7.0 до 2.14.2

brew upgrade git