lockings de commands de git-gui en macOS Sierra

Después de la actualización a macOS Sierra, el command git-gui bloquea con un error:

 Deseo [23862: 202062] *** Aplicación de finalización debido a la exception no detectada 'CALayerInvalidGeometry', razón: 'La position de CALayer contiene NaN: [0 nan]'
 *** Primera stack de llamadas de tiro:
 (
     0 CoreFoundation 0x00007fff8cd9252b __exceptionPreprocess + 171
     1 libobjc.A.dylib 0x00007fffa146acad objc_exception_throw + 48
     2 CoreFoundation 0x00007fff8ce10a0d + [NSException raise: formatting:] + 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 Fundación 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 Deseo 0x0000000101658542 Deseo + 9538
     26 libdyld.dylib 0x00007fffa1d48255 start + 1
 )
 libc ++ abi.dylib: terminando con exception no detectada de tipo NSException
 error: git-gui murió de la señal 6

¿Alguien tiene el mismo problema y una solución para esto?

En lugar de utilizar el MacOS tcl-tk pnetworkingeterminado, use el último tcl-tk (8.6.6) de Homebrew y luego vincule por la fuerza, por ejemplo:

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

Hay un problema con Tk 8.5 en MacOS Sierra. Podría replace Tk Wish 8.5 con 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/

fuente: https://github.com/git/git-scm.com/issues/853

UPD: preste atención para replace la versión de git en el path de cp con su versión actual

Pruebe: git config --local --unset gui.geometry
Este error se produce debido a que el administrador de Tk Geometry no funciona debido a una versión anterior o si está dañado.

Si el command anterior no funcionó intente actualizar su xcode: xcode-select --install

Mi solución debería funcionar para la descarga de git desde https://git-scm.com/

brew install homebrew/dupes/tcl-tk

cd a /usr/local/git/share/git-gui/lib/Git Gui.app/Contents/MacOS y /usr/local/git/share/git-gui/lib/Git Gui.app/Contents/MacOS copy de security del Wish original

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

La actualización a macOS 10.12.2 corrige el problema.

Referencias

No hay información sobre por qué en el logging de cambios de Apple: https://support.apple.com/en-us/HT207307 .

Agrupé un montón de respuestas desde aquí, ya que estoy usando GIT y TCL a través de 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

Con el time, obviamente los numbers de versión pueden variar

Considero que los siguientes objectives constituyen la solución completa al problema:

  • La certeza de "Nuke from orbit" para resolver esto de una manera orderada y lineal

  • No termines con fonts feas de un Apple Tcl / Tk henetworkingado

  • Desacopla tu git gui del Apple Tcl / Tk enviado

    • Confíe en Homebrew para su installation Tcl / Tk

A continuación encontrará un paso a paso para lograr esto:

  1. Obtenga el Tcl / Tk duplicado de Homebrew

     brew install tcl-tk 
  2. Agregue la installation de Tcl / Tk no interrumpida a la (s) ruta (s) antes de la implementación de Apple interrumpida.

    • Esto supone que tus routes de Homebrew tienen prioridad sobre las routes de tu sistema
    • Este debería ser el caso en una installation normal de Homebrew
    • Esto fallará si tiene files conflictivos de sus otras recetas homebrew instaladas
    • Por ejemplo, the_platinum_searcher proporciona pt , que entra en conflicto
    • Recomiendo ripgrep para evitar este caso

       brew link --force tcl-tk 
  3. Repara tu installation de gitk volviendo a instalarla contra la versión de Homebrew no rota

    • Esto podría no ser necesario, pero ref. el primer objective declarado anteriormente

       brew reinstall git 
  4. Copie el nuevo file binary deseado de su installation Homebrew Tcl / Tk sobre el package empaquetado roto de Apple en el package Git Gui.app

    • Esto confía ciegamente en la homebrew info <package> de homebrew info <package> para no cambiar

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

El último bit podría ser útil para include un alias en su ~/.bashrc y / o equivalente, ya que tendrá que repetirse cada vez que obtenga una nueva versión de 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"' 

No estoy completamente seguro de por qué las citas para el carácter de delimitador de campo para el corte utilizado anteriormente funcionan así que use este alias con precaución ya que esto podría depender de una versión de bash exacta.

Funciona para mí: descargue e instale la última versión de TCL (utilicé 8.6.4) http://www.activestate.com/activetcl/downloads

También descargué e instalé la última versión (2.10.1) de git https://git-scm.com/

Comtesting que la window de gitk no se cuelgue después del cambio de tamaño.

La respuesta de @ sbondaryev (39966704) no funcionó para mí y todavía tengo que probar @ ssahu (40119030). Sin embargo, el truco que describo aquí queuepsó con mucha less frecuencia (10% de time más o less) para mí. Y me impide meterme demasiado con las cosas; con suerte, el problema se solucionará pronto.

  • Se produjo un error al cambiar el tamaño de la window (90% del time). Pero me pareció demasiado pequeño para trabajar y quería networkingimensionarlo.
  • vi .git/config
  • edite la GUI geography la GUI geography para crear un tamaño de window que funcione. Todavía lo mantengo pequeño, aunque sospecho que habrá un tamaño sobre el cual el colisión siempre ocurrirá

My Sierra (actualizado desde 10.11.6) tiene Tcl / Tk Current apuntando a 8.5 y observé el mismo error después de la actualización, con nuestro progtwig Python usando Tkinter. No estoy usando Wish. No tuve ayuda de la installation de 32 bits de Python 2.7 vinculada a Tcl / Tk 8.4 ya que esa no tenía "mosaico". Así que preparé mi Python, vinculándolo con Tcl / Tk 8.6:

Esto es para preparar botellas precomstackdas en lugar de crearlas a partir de fonts, a less que se indique específicamente lo contrario, por lo que realmente no causan el problema:

 xcode-select --install 

Luego instale Tcl / Tk:

 brew install homebrew/dupes/tcl-tk 

Si no instaló Python originalmente con –with-tcl-tk , entonces:

 brew uninstall python 

Finalmente:

 brew install python --with-tcl-tk 

Después de esto tengo Python que está vinculado a Tcl / Tk 8.6 y parece que me deshice del error.

Después de muchas dificultades, esta solución resuelve mi problema:

 $ brew upgrade tcl-tk 

Si está actualizado y esto no funciona, intente:

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

He probado todas las soluciones en la web, pero solo esto resuelve el problema. ¡Aclamaciones!

Esto se ha resuelto en los parches más recientes de macOS Sierra (10.12.2 y superior) y no es necesario realizar ninguna otra acción.

En High Sierra (10.13) tuve el mismo problema con git gui.

He resuelto el problema actualizando git de 2.7.0 a 2.14.2

 brew upgrade git 
Intereting Posts