web-dev-qa-db-fra.com

La commande git-gui plante sur macOS Sierra

Après la mise à jour vers macOS Sierra, git-gui la commande se bloque avec une erreur:

 Souhait [23862: 202062] *** Fin de l'application en raison de l'exception non capturée 'CALayerInvalidGeometry', raison: 'La position CALayer contient NaN: [0 nan]' 
 *** Première pile d'appel: 
 (
 0 CoreFoundation 0x00007fff8cd9252b __exceptionPreprocess + 171 
 1 libobjc.A.dylib 0x00007fffa146acad objc_exception_throw + 48 
 2 CoreFoundation 0x00007fff8ce10a0d + [format: NSEx] 
 3 QuartzCore 0x00007fff92938980 _ZN2CA5Layer12set_positionERKNS_4Vec2IdEEb + 152 
 4 QuartzCore 0x00007fff92938af5 - [CALayer setPosition:] + 44 
 5 QuartzCore 0x00007fff929ayer4. 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 0x00007fff8ac_BD_Black_Val_Black_Ink. 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 [.____ .000 236 Tf_107k Tk_MainEx + 1566 
 25 Souhait 0x000 0000101658542 Souhait + 9538 
 26 libdyld.dylib 0x00007fffa1d48255 start + 1 
) 
 Libc ++ abi.dylib: terminaison avec une exception non capturée de type NSException 
 Erreur: git -gui est mort du signal 6 

Quelqu'un at-il le même problème et une solution pour cela?

49
sbondaryev

Au lieu d'utiliser le MacOS par défaut tcl-tk, utilisez le dernier tcl-tk (8.6.6) de Homebrew puis liez-le par la force, par exemple:

brew install tcl-tk
brew link tcl-tk --force
22
ssahu

Essayez: git config --local --unset gui.geometry
Cette erreur se produit car le gestionnaire Tk Geometry ne fonctionne pas, en raison d'une ancienne version ou s'il est corrompu.

Si la commande ci-dessus ne fonctionne pas, essayez de mettre à jour votre xcode: xcode-select --install

20
Nainy Agrawal

Il y a un problème avec Tk 8.5 sur MacOS Sierra. Vous pouvez remplacer Tk Wish 8.5 par 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/

source: https://github.com/git/git-scm.com/issues/85

UPD: Faites attention à remplacer la version git dans le chemin cp par votre version actuelle

18
sbondaryev

Ma solution devrait fonctionner pour le téléchargement git depuis https://git-scm.com/

brew install homebrew/dupes/tcl-tk

cd à /usr/local/git/share/git-gui/lib/Git Gui.app/Contents/MacOS et sauvegarde le souhait d'origine

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
Bruce

J'ai regroupé un tas de réponses d'ici ensemble, car j'utilise GIT et TCL via brew:

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

Au fil du temps, évidemment, les numéros de version peuvent varier

4
Malachi

Je considère que les objectifs suivants constituent la solution complète au problème:

  • La certitude "Nuke from orbite" pour résoudre ce problème de façon nette et linéaire

  • Ne vous retrouvez pas avec des polices moches d'un héritage Apple Tcl/Tk

  • Découplez votre git gui du Apple Tcl/Tk expédié

    • Faites confiance à Homebrew pour votre installation Tcl/Tk

Vous trouverez ci-dessous une étape par étape pour y parvenir:

  1. Obtenez le Tcl/Tk dupliqué de Homebrew

    brew install tcl-tk
    
  2. Ajoutez l'installation Tcl/Tk non interrompue au (x) chemin (s) avant l'implémentation Apple Apple

    • Cela suppose que vos chemins Homebrew ont priorité sur vos chemins système
    • Cela devrait être le cas dans une installation Homebrew normale
    • Cela échouera si vous avez des fichiers en conflit avec vos autres recettes homebrew installées
    • Par exemple the_platinum_searcher fournit pt, qui entre en conflit
    • Je recommande ripgrep pour contourner ce cas

      brew link --force tcl-tk
      
  3. Réparez votre installation de Gitk en réinstallant la version Homebrew non interrompue

    • Cela peut ne pas être nécessaire, mais réf. le premier objectif déclaré ci-dessus

      brew reinstall git
      
  4. Copiez le nouveau binaire de souhait de votre installation Homebrew Tcl/Tk sur celui qui est cassé fourni à partir de Apple dans le bundle Git Gui.app

    • Cela repose aveuglément sur la sortie de homebrew info <package> pour ne pas changer

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

Le dernier bit pourrait être judicieux de gifler dans un alias dans votre ~/.bashrc et/ou équivalent car il devra être répété chaque fois que vous obtiendrez une nouvelle version git de 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"'

Je ne sais pas vraiment pourquoi la citation pour le délimiteur de champ pour la coupe utilisée ci-dessus fonctionne donc utilisez cet alias avec prudence car cela pourrait très bien dépendre d'une version bash exacte.

3
Rotonen

La mise à niveau vers macOS 10.12.2 résout le problème.

Les références:

Aucune idée de pourquoi de Apple journal des modifications: https://support.Apple.com/en-us/HT207307 .

2
Kenn Sebesta

Ma Sierra (mise à niveau à partir de 10.11.6) a Tcl/Tk Current pointant vers 8.5 et j'ai observé la même erreur après la mise à niveau, avec notre programme Python utilisant Tkinter. Je n'utilise pas Wish. Je n'ai eu aucune aide de Python 2.7 Installation 32 bits liée à Tcl/Tk 8.4 car celle-ci n'avait pas de "tuile". J'ai donc préparé mon Python, en le liant à Tcl/Tk 8.6:

C'est pour que la bière utilise des bouteilles précompilées au lieu de construire à partir de sources, sauf indication contraire, donc ne provoque pas vraiment le problème:

xcode-select --install

Installez ensuite Tcl/Tk:

brew install homebrew/dupes/tcl-tk

Si vous n'avez pas installé Python à l'origine avec - avec-tcl-tk, alors:

brew uninstall python

Finalement:

brew install python --with-tcl-tk

Après cela, j'ai Python qui est lié à Tcl/Tk 8.6 et semble que je me suis débarrassé de l'erreur.

0
jalairo

Ce problème a été résolu sur les derniers correctifs de macOS Sierra (10.12.2 et versions ultérieures) et aucune autre action n'est nécessaire.

0
James Fry

Après beaucoup de difficultés, cette solution résout mon problème:

$ brew upgrade tcl-tk

S'il est à jour et que cela ne fonctionne pas, essayez:

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

J'ai essayé toutes les solutions sur le Web, mais seulement cela résout le problème. À votre santé!

0
PetyoKostakov

Cela fonctionne pour moi: téléchargez et installez la dernière version de TCL (j'ai utilisé 8.6.4) http://www.activestate.com/activetcl/downloads

J'ai également téléchargé et installé la dernière version (2.10.1) de git https://git-scm.com/

Vérifiez que la fenêtre de gitk ne plante pas après le redimensionnement.

0
Vadim Motorine

La réponse de @ sbondaryev (39966704) n'a pas fonctionné pour moi et je n'ai pas encore essayé de @ ssahu (40119030). Cependant, l'astuce que je décris ici s'est écrasée beaucoup moins souvent (environ 10% du temps) pour moi. Et cela m'empêche de trop jouer avec les choses - j'espère que le problème sera corrigé correctement bientôt.

  • Le plantage semblait se produire lors du redimensionnement de la fenêtre (90% du temps). Mais je l'ai trouvé trop petit pour travailler avec et j'ai voulu le redimensionner.
  • vi .git/config
  • éditez le GUI geography pour créer une taille de fenêtre qui fonctionne. Je l'ai toujours gardé petit mais je pense qu'il y aura une taille au-dessus de laquelle le crash se produira toujours
0
HankCa

Un correctif qui a fonctionné pour moi: déconnectez le deuxième moniteur, ouvrez git gui -> fonctionne, fermez-le, reconnectez le deuxième moniteur et exécutez git gui -> fonctionne à nouveau :)

0
Yo Ludke

Sur High Sierra (10.13), j'ai eu le même problème avec git gui.

J'ai résolu le problème en mettant à jour git de 2.7.0 à 2.14.2

brew upgrade git
0
Rammgarot