polecenie Git-gui wywala się na macOS Sierra

Po aktualizacji do macOS Sierra, git-gui Komenda zawiesza się z błędem:

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
Czy ktoś ma ten sam problem i rozwiązanie?
Author: kenorb, 2016-10-03

14 answers

Zamiast domyślnego MacOS tcl-tk, Użyj najnowszego tcl-Tk (8.6.6) z Homebrew, a następnie połącz go siłą, na przykład:

brew install tcl-tk
brew link tcl-tk --force
 20
Author: ssahu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-17 21:14:13

Jest problem z Tk 8.5 na MacOS Sierra. Możesz zastąpić 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/

Źródło: https://github.com/git/git-scm.com/issues/853

UPD: zwróć uwagę, aby zastąpić wersję git w ścieżce cp bieżącą wersją

 18
Author: sbondaryev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-01 15:42:15

Spróbuj: git config --local --unset gui.geometry
Ten błąd występuje ze względu na to, że Tk Geometry manager nie działa, ze względu na starszą wersję lub jeśli jest uszkodzony.

Jeśli powyższe polecenie nie zadziałało spróbuj zaktualizować swój xcode: xcode-select --install

 14
Author: Nainy Agrawal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-12 06:46:09

Moje rozwiązanie powinno działać dla git download z https://git-scm.com/

brew install homebrew/dupes/tcl-tk

Cd do /usr/local/git/share/git-gui/lib/Git Gui.app/Contents/MacOSi kopia zapasowa oryginalnego życzenia

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
Author: Bruce,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-02 07:49:59

Zebrałem kilka odpowiedzi stąd razem, ponieważ używam GIT i 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

Z czasem oczywiście numery wersji mogą się różnić

 3
Author: Malachi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-17 21:16:47

Aktualizacja do macOS 10.12.2 rozwiązuje problem.

Bibliografia:

Brak wglądu dlaczego z dziennika zmian Apple: https://support.apple.com/en-us/HT207307 .

 2
Author: Kenn Sebesta,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-24 14:13:24

Za pełne rozwiązanie problemu uważam następujące cele:]}

  • "Nuke from orbit" pewność w rozwiązaniu tego w schludny i liniowy sposób

  • Nie kończ z brzydkimi czcionkami ze starszej wersji Apple Tcl / Tk

  • Oddzielenie interfejsu git od dostarczonego przez Apple Tcl / Tk

    • polegaj na Homebrew dla Twojej instalacji Tcl / Tk

Poniżej znajdziesz krok po kroku, aby osiągnąć to:

  1. Pobierz duplikowany Tcl / Tk z Homebrew

    brew install tcl-tk
    
  2. Dodaj niedziałającą instalację Tcl / Tk do ścieżki(ścieżek) przed uszkodzoną implementacją Apple

    • zakłada to, że ścieżki Homebrew mają pierwszeństwo przed ścieżkami systemowymi
    • Tak powinno być w przypadku normalnej instalacji Homebrew]}
    • to się nie powiedzie, jeśli masz sprzeczne pliki z innymi zainstalowanymi przepisami homebrew
    • na przykład the_platinum_searcher zapewnia pt, które konfliktują
    • Polecam ripgrep do obejścia tej sprawy

      brew link --force tcl-tk
      
  3. Napraw instalację gitk przez ponowną instalację w wersji Nonbroken Homebrew

    • To może nie być konieczne, ale ref. pierwszy podany powyżej cel
      brew reinstall git
      
  4. Skopiuj nowy plik binarny wish z instalacji Homebrew Tcl / Tk nad zepsutym pakietem z Apple w Gui Git.aplikacja bundle

    • To ślepo opiera się na ouput homebrew info <package>, aby nie zmienić

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

Ostatni bit może być mądry, aby dodać alias do twojego ~/.bashrc i / lub odpowiednika, ponieważ będzie musiał być powtarzany za każdym razem, gdy otrzymasz nową wersję git z 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"'

Nie jestem do końca pewien, dlaczego cytowanie znaku ogranicznika pola dla cięcia użytego powyżej działa, więc używaj tego aliasu z ostrożnością, ponieważ może to bardzo dobrze zależeć od dokładnego wersja bash.

 2
Author: Rotonen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-21 11:15:17

U mnie działa: Pobierz i zainstaluj najnowszą wersję TCL (użyłem 8.6.4) http://www.activestate.com/activetcl/downloads

Pobrałem i zainstalowałem najnowszą wersję (2.10.1) git https://git-scm.com/

Sprawdź, czy okno gitk nie zawiesza się po zmianie rozmiaru.

 0
Author: Vadim Motorine,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-15 02:41:07

@Sbondaryev 's answer (39966704) nie działa dla mnie i jeszcze nie próbowałem @ ssahu' s (40119030). Jednak trick, który tutaj opisuję, wypadał dla mnie znacznie rzadziej (około 10% czasu). I powstrzymuje mnie to od zbytniego wygłupiania się z rzeczami-mam nadzieję, że problem zostanie wkrótce naprawiony prawidłowo.

  • upaść wydawała się mieć miejsce podczas zmiany rozmiaru okna (90% czasu). Ale stwierdziłem, że jest zbyt mały, aby pracować z nim i chciałem zmienić jego rozmiar.
  • vi .git/config
  • edytuj GUI geography, aby utworzyć rozmiar okna, który działa. Nadal trzymałem go mały, choć podejrzewam, że będzie rozmiar, nad którym upaść zawsze się wydarzy
 0
Author: HankCa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-28 03:39:24

Mój Sierra (uaktualniony z 10.11.6) mA Prąd Tcl / Tk wskazujący na 8.5 i zauważyłem ten sam błąd po aktualizacji, z naszym programem Pythona używającym Tkinter. Nie używam życzeń. Nie miałem pomocy z Pythona 2.7 32bit instalacji związanej z Tcl / Tk 8.4, ponieważ ten nie miał "tile". Więc zaparzyłem Pythona, łącząc go z Tcl / Tk 8.6:

To jest dla brew, aby używać wstępnie skompilowanych butelek zamiast budować ze źródeł, chyba że wyraźnie zalecono inaczej, więc tak naprawdę nie powodując wydanie:

xcode-select --install

Następnie zainstaluj Tcl/Tk:

brew install homebrew/dupes/tcl-tk

Jeśli nie zainstalowałeś Pythona oryginalnie za pomocą -- with-tcl-tk, to:

brew uninstall python

Wreszcie:

brew install python --with-tcl-tk

Po tym mam Pythona, który jest połączony z Tcl / Tk 8.6 i wygląda na to, że pozbyłem się błędu.

 0
Author: jalairo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-19 14:33:54

Po wielu trudnościach To rozwiązanie rozwiązuje mój problem:

$ brew upgrade tcl-tk

Jeśli jest to aktualne i to nie działa, spróbuj:

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

Próbowałem wszystkich rozwiązań w sieci, ale tylko to rozwiązuje problem. Zdrowie!

 0
Author: PetyoKostakov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-15 11:26:03

Zostało to rozwiązane w najnowszych łatach do systemu MacOS Sierra (10.12.2 i nowszych) i nie ma potrzeby podejmowania dalszych działań.

 0
Author: James Fry,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-17 21:27:09

Na High Sierra (10.13) miałem ten sam problem z gui git.

Rozwiązałem problem aktualizując git z 2.7.0 do 2.14.2

brew upgrade git
 0
Author: Rammgarot,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-18 13:04:04

A fix that worked for me: disconnect second monitor, open git gui -> works, close it, reconnect the second monitor and run git gui - > works again:)

 0
Author: Yo Ludke,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-14 08:27:49