gitk nie uruchamia się na Macu: nieznana nazwa koloru „limonka”

127

Zainstalowałem git na komputerze Mac przez brew install git. Kiedy próbuję uruchomić gitk, pojawia się następujący błąd:

Error in startup script: unknown color name "lime"
    (processing "-fore" option)
    invoked from within
"$ctext tag conf m2 -fore [lindex $mergecolors 2]"
    (procedure "makewindow" line 347)
    invoked from within
"makewindow"
    (file "/usr/local/bin/gitk" line 12434)

Wygląda na to, że mój Mac nie ma nazwy koloru lime.

Czy mogę dodać do otoczenia kolor limonki, czy jest lepsze rozwiązanie?

Wersja git to 2.7.0, a na komputerze Mac działa Yosemite 10.10.5

ReggieB
źródło

Odpowiedzi:

197

Możesz sprawdzić swoją wersję Tcl / Tk, uruchamiając wishi używając polecenia info patchlevel. Wygląda na to, że git 2.7.0, Tcl / Tk 8.5.9 i OS X 10.11 El Capitan nie współpracują dobrze ze sobą.

Rozwiązałem ten problem robiąc brew cask install tcl, który zainstalował 8.6.4 i gitkdziała teraz.

Kate Bertelsen
źródło
3
W przypadku MacPorts jest coś dziwnego. Tcl wersja 8.6.4 jest zainstalowana, ale chciałbym raportować 8.5.9.
edA-qa mort-ora-y
4
Po zainstalowaniu nowego Tcl / Tk musiałem to zrobić brew install --build-from-source git, git guiaby rozpocząć gitkod zaktualizowanego Tcl.
lo5an
1
Zastrzeżenie, które odkryłem od tamtej pory: jeśli masz zainstalowany tcl 8.6.4, masz rbenvproblem z zainstalowaniem nowych wersji Rubiego.
Kate Bertelsen
3
Zainstalowałem Tcl 8.6 bez brew, pobierając pakiet instalatora ActiveTcl . Gitk działa teraz dobrze.
Pasi Välkkynen
1
Jeśli spróbuję uruchomić brew cask install tclw wierszu poleceń życzeń,
pojawia
49

Znalazłem również ten sam problem z dokładnie tą samą wersją gita i OSX. W ramach tymczasowego obejścia sugeruję wykonanie następujących czynności:

cp /usr/local/bin/gitk /usr/local/bin/gitk.bkp
vi /usr/local/bin/gitk

i wymień wszystkie występujące wapno na dowolny kolor (użyłem # 99FF00). Oto polecenie vim:

:%s/lime/"#99FF00"/g

EDYCJA: Postępuj zgodnie z odpowiedzią Keitha B, aby uzyskać trwałe rozwiązanie.

Konrad
źródło
Musiałem zmienić kod szesnastkowy na „zielony”, aby działał, w przeciwnym razie nie udało się w linii 3400.
Używając MacPorts, ten plik znajdował się w/opt/local/bin/gitk
edA-qa mort-ora-y
Miałem ten sam problem na Ubuntu 12.04 po aktualizacji git / gitk do wersji 2.7.0. Mam tcl 8.5.0. i żadna aktualizacja nie jest dostępna w standardowych repozytoriach Ubuntu 12, więc to obejście było rozwiązaniem w moim kontekście.
AlejandroVD
@Konrad: Dziękuję! Dla kogokolwiek innego na OSX, 1liner zastąp:sed -i.lime_color_replace_backup 's/lime/"#99FF00"/g' /usr/local/bin/gitk
bgs
być może będziesz musiał chmod u+w /usr/local/bin/gitkwcześniej
Renaud
9

@Konrad Dzięki za pomoc !! Chociaż odpowiedź jest prawidłowa, pamiętaj, że Twoja komenda

:%s/lime/"#99FF00”/g

zawiera dwa różne cudzysłowy, które będą def. zgłoś błąd, jeśli skopiowano i wklejono.

Aby więc przez to przejść, musiałem zrobić:

cp /usr/local/bin/gitk /usr/local/bin/gitk.bkp
vi /usr/local/bin/gitk

I wewnątrz vim:

:%s/lime/"#99FF00"/g
Lukars
źródło
2
Ja też to odkryłem. Mam na tyle karmy, że mogłem edytować odpowiedź Konrada.
George V. Reilly,
Zgadzam się. To powinna być edycja odpowiedzi Konrada.
ReggieB,
4

Jeśli nie chcesz korzystać Caskroom, wykonaj następujące czynności:

$ brew install tcl-tk
$ brew link tcl-tk --force
merito
źródło
To działało świetnie, dzięki. Musiałem jednak użyć link tcl-tk --force --overwrite.
Lenar Hoyt
4

Miałem ten sam problem w systemie Ubuntu. Następnie wykonuję poniższy krok, aby rozwiązać problem.

  1. otwórz plik / usr / bin / gitk w dowolnym edytorze tekstu

  2. wyszukaj słowo kluczowe „lime” w pliku

  3. zamień „lime” na „zielony” na wszystko w pliku

  4. zapisz zmiany w plikach

  5. spróbuj ponownie gitk, to działa

kaushal sharma
źródło
2

Używam MAC z Yosemetti i wykonałem poniższe kroki, aby rozwiązać problem.

open /usr/local/git/bin/gitk file in any text editor

search 'lime' keyword in file

replace 'lime' to 'green' with all in file

save file changes

try again gitk then it works

Dzięki @kaushal sharma, podążyłem za twoją odpowiedzią, ze zmianą ścieżki gitk.

Venu Madhav
źródło
2

Przydatny dodatek do dobrych odpowiedzi sugerujący zastąpienie wszystkich wystąpień słowa „lime” słowem „green” w pliku / usr / bin / gitk lub / usr / local / git / bin / gitk:

Zastąpienie wystąpień „lime” w powyższym pliku „gitk” czasami nie wystarcza.

Musisz również wykonać ten sam proces zastępowania pliku ~/.config/git/gitklub usunąć ten plik.

sdive
źródło
0

Postępuj zgodnie z instrukcjami powyżej, ale dodatkowo wykonaj następujące czynności:

przed uruchomieniem vi: chmod + w / usr / local / bin / gitk

po zamknięciu vi: chmod -w / usr / local / bin / gitk

riscv
źródło
Zwróć uwagę, że „powyżej” nie ma kontekstu w odpowiedziach, ponieważ można je sortować na różne sposoby. Lepiej byłoby zamieścić link bezpośrednio do odpowiedzi, do której się odnosisz.
ale
0

Upewnij się, że Twoja ścieżka jest ustawiona poprawnie podczas wypróbowywania rozwiązania Keitha B. Uruchomienie brew doctorpokazało, że miałem / usr / bin przed / usr / local / bin.

~ $ brew doctor
...
Consider setting your PATH so that /usr/local/bin
occurs before /usr/bin. Here is a one-liner:
  echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bash_profile
kletterstein
źródło
0

Dzięki Konrad, to działa dla mnie z poniższym krokiem

  1. aktualizacja sudo brew
  2. sudo brew cask install tcl

-

user1665785
źródło
To Kieth B zasugerował to zrobić.
ReggieB