MacOS Sierraへの更新後、git-gui
コマンドはエラーでクラッシュします:
Wish [23862:202062] ***キャッチされていない例外 'CALayerInvalidGeometry'によるアプリの終了、理由: '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 +:NS例外205 [。 0x00007fff986e2112 _ZN20CUICoreThemeRenderer26MakeOrUpdateScrollBarLayerEPK13CUIDescriptoraPP7CALayer + 1284 7 CoreUI 0x00007fff986de317 _ZN20CUICoreThemeRenderer19CreateOrUpdateLayerEPK13CUIDescriptorPP7CALayer + 1755年8 CoreUI 0x00007fff986604d1 _ZN11CUIRenderer19CreateOrUpdateLayerEPK14__CFDictionaryPP7CALayer + 175 9 CoreUI 0x00007fff98663185 CUICreateOrUpdateLayer + 221 10のAppKit 0x00007fff8b3c7623 - [。____] [NSCompositeAppearance _callCoreUIWithBlock:オプション] + 226 11 AppKit 0x00007fff8aa74a9d-[NSAppearance _createOrUpdateLayer:options:] + 76 12 AppKit 0x00007fff8aced143-[NSScrollerImp _animateToRolloverState] + 274 14_R 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 [。 ____。 Tk_MainEx + 1566 25ウィッシュ0x000 0000101658542ウィッシュ+ 9538 26 libdyld.dylib 0x00007fffa1d48255 start + 1 ) libc ++ abi.dylib:NSException error:gitのキャッチされない例外で終了-guiはシグナル6で死亡しました
誰も同じ問題とこれに対する解決策を持っていますか?
デフォルトのMacOS tcl-tk
を使用する代わりに、Homebrewの最新のtcl-tk(8.6.6)を使用してから、強制的にリンクします。次に例を示します。
brew install tcl-tk
brew link tcl-tk --force
試してください:git config --local --unset gui.geometry
このエラーは、Tk Geometry managerが機能しないため、古いバージョンのため、または破損している場合に発生します。
上記のコマンドが機能しない場合は、xcodeを更新してください:xcode-select --install
MacOS SierraのTk 8.5に問題があります。 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/85
UPD:cp
パスのgitバージョンを現在のバージョンに置き換えることに注意してください
私のソリューションは、 https://git-scm.com/ からのgitダウンロードで動作するはずです
brew install homebrew/dupes/tcl-tk
/usr/local/git/share/git-gui/lib/Git Gui.app/Contents/MacOS
にcdし、元のWishをbackup
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
brew
を介してGIT and TCLを使用しているため、ここから多数の回答をまとめました。
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
時間が経つにつれて明らかにバージョン番号が異なる場合があります
問題の完全な解決策を構成するために、次の目標を検討します。
これをきちんと直線的に解決する「軌道からの核」の確実性
レガシーApple Tcl/Tkのいフォントで終わらない
Git guiをApple付属のTcl/Tkから切り離します
以下に、これを達成するための段階的な手順を示します。
Homebrewから複製されたTcl/Tkを取得する
brew install tcl-tk
壊れたApple実装の前に、壊れていないTcl/Tkインストールをパスに追加します
the_platinum_searcher
はpt
を提供しますが、これは競合しますこのケースを回避するために ripgrep をお勧めします
brew link --force tcl-tk
壊れていないHomebrewバージョンに対して再インストールして、gitkのインストールを修正します
これは必要ではないかもしれませんが、参照。上記の最初に述べた目標
brew reinstall git
Homebrew Tcl/Tkインストールの新しいwishバイナリを、Apple
これは盲目的にhomebrew info <package>
の出力に依存して変化しない
cp "$(which wish)" "$(brew info git | grep Cellar | cut -d' ' -f1)/share/git-gui/lib/Git Gui.app/Contents/MacOS/Wish"
Homebrewから新しいgitバージョンを取得するたびに繰り返す必要があるため、最後のビットは~/.bashrc
および/または同等のエイリアスに平手打ちするのが賢明かもしれません。
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バージョンに依存する可能性があるため、このエイリアスは注意して使用してください。
MacOS 10.12.2にアップグレードすると、問題が修正されます。
参照:
Appleログの変更: https://support.Apple.com/en-us/HT207307 からの理由についての洞察はありません。
私のSierra(10.11.6からアップグレード)のTcl/Tk Currentは8.5を指しており、アップグレード後にTkinterを使用したPythonプログラムで同じエラーが発生しました。Wishは使用していません。 Python 2.7 Tcl/Tk 8.4にリンクされた32ビットのインストールには「タイル」がないため、助けがありませんでした。そこで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
Webのすべてのソリューションを試しましたが、これだけで問題が解決します。乾杯!
TCLの最新バージョンをダウンロードしてインストールします(8.6.4を使用しました) http://www.activestate.com/activetcl/downloads
また、gitの最新バージョン(2.10.1)をダウンロードしてインストールしました https://git-scm.com/
サイズ変更後にgitkウィンドウがクラッシュしないことを確認します。
@sbondaryevの答え(39966704)は私には役に立たなかったし、@ ssahuの(40119030)をまだ試していません。しかし、ここで説明するトリックは、私にとってはそれほど頻繁にクラッシュしませんでした(時間の10%程度)。そして、それは私が物事をいじりすぎるのを防ぎます-うまくいけば、問題はすぐに適切に修正されるでしょう。
vi .git/config
GUI geography
動作するウィンドウサイズを作成します。クラッシュが常に発生するサイズがあると思うが、私はまだそれを小さくしました私のために働いた修正:2番目のモニターを切断し、開くgit gui
->動作し、閉じ、2番目のモニターを再接続してgit gui
->再び動作します:)
High Sierra(10.13)では、git guiで同じ問題が発生しました。
Gitを2.7.0から2.14.2に更新することで問題を解決しました
brew upgrade git