Ответ 1
Вместо использования MacOS tcl-tk
по умолчанию используйте последний tcl-tk (8.6.6) из Homebrew, а затем привяжите его силой, например:
brew install tcl-tk
brew link tcl-tk --force
После обновления до 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
У кого-то есть такая же проблема и решение для этого?
Вместо использования MacOS tcl-tk
по умолчанию используйте последний tcl-tk (8.6.6) из Homebrew, а затем привяжите его силой, например:
brew install tcl-tk
brew link tcl-tk --force
Существует проблема с 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
на текущую версию
Try:
git config --local --unset gui.geometry
Эта ошибка возникает из-за того, что диспетчер Tk Geometry не работает из-за более старой версии или если он поврежден.
Если приведенная выше команда не работает, попробуйте обновить xcode:
xcode-select --install
Мое решение, должно работать для 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
Я собрал вместе кучу ответов, так как я использую 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
Со временем, очевидно, номера версий могут меняться
Обновление до macOS 10.12.2 устраняет проблему.
Литература:
Невозможно понять, почему из журнала изменений Apple: https://support.apple.com/en-us/HT207307.
Я считаю следующие цели, чтобы составить полное решение проблемы:
"Нук с орбиты" уверенность в решении этого в аккуратном и линейном режиме
Не заканчивайте уродливые шрифты из устаревшего Apple Tcl/Tk
Развяжите свой git gui от Apple, отправленного Tcl/Tk
Ниже вы найдете шаг за шагом, чтобы достичь этого:
Получить дублированный Tcl/Tk из Homebrew
brew install tcl-tk
Добавьте неровную установку Tcl/Tk к пути (-ам) до сломанной реализации Apple
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.
Он работает для меня: загрузите и установите последнюю версию TCL (я использовал 8.6.4) http://www.activestate.com/activetcl/downloads
Я также загрузил и установил последнюю версию (2.10.1) из git https://git-scm.com/
Убедитесь, что после изменения размера окна gitk не сработает.
@sbondaryev answer (39966704) не работал у меня, и мне еще предстоит попробовать @ssahu (40119030). Однако трюк, который я описываю здесь, разбился гораздо реже (10% времени или около того) для меня. И это мешает мне слишком много шутить с вещами - надеюсь, проблема скоро будет исправлена.
vi .git/config
GUI geography
, чтобы создать размер окна, который работает. Я все еще держал его маленьким, хотя я подозреваю, что будет размер, над которым всегда будет происходить сбой.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 и выглядит так, как будто я избавился от этой ошибки.
Это было разрешено для самых последних исправлений для macOS Sierra (10.12.2 и выше), и никаких дальнейших действий не требуется.
После многого борьбы это решение решает мою проблему:
$ brew upgrade tcl-tk
Если это актуально, и это не работает, попробуйте:
$ brew uninstall tcl-tk
$ brew install tcl-tk
Я пробовал каждое решение в Интернете, но только это решает проблему. Ура!
В High Sierra (10.13) у меня была такая же проблема с git gui.
Я решил проблему, обновив git с версии 2.7.0 до 2.14.2
brew upgrade git