gitk не запускается на Mac: неизвестное название цвета лайма

Я установил git на Mac через brew install git. Когда я пытаюсь запустить gitk, я получаю следующую ошибку:

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)

Похоже, что у моего Mac нет цвета с именем lime.

Могу ли я добавить цвет лайма в окружающую среду, или есть лучшее решение?

Версия git — 2.7.0, а на Mac — Yosemite 10.10.5.


person ReggieB    schedule 06.01.2016    source источник


Ответы (10)


Вы можете проверить свою версию Tcl/Tk, запустив wish и используя команду info patchlevel. Похоже, что git 2.7.0, Tcl/Tk 8.5.9 и OS X 10.11 El Capitan плохо работают вместе.

Я решил эту проблему, выполнив brew cask install tcl, который установил 8.6.4, и gitk теперь работает.

person Kate Bertelsen    schedule 19.01.2016
comment
Здесь что-то странное с использованием MacPorts. Tcl версии 8.6.4 установлен, но пожелание сообщает 8.5.9. - person edA-qa mort-ora-y; 01.02.2016
comment
Как только я установил новый Tcl/Tk, мне пришлось сделать brew install --build-from-source git, чтобы заставить git gui начать gitk с обновленным Tcl. - person lo5an; 04.02.2016
comment
Предостережение, которое я с тех пор обнаружил: если у вас установлен tcl 8.6.4, то у rbenv возникают проблемы с установкой новых версий Ruby. - person Kate Bertelsen; 18.02.2016
comment
brew cask install tcl в настоящее время выдает мне ошибку Ruby undefined method 'default_spec_cache_dir' for Gem:Module:/ К счастью, ответ Конрада ниже работает. - person Cory Klein; 01.03.2016
comment
У меня не работает (на El Capitan): brew cask install tcl устанавливает 8.5.9, а не 8.6.4, поэтому ошибка остается. Обходной путь Конрада устранил проблему, пока это не сработает. - person FGM; 02.03.2016
comment
Не забудьте brew update убедиться, что у вас есть информация о последней версии. Кроме того, я не знаю, почему я получил 8.6.4, а кто-то другой получил другую версию. - person Kate Bertelsen; 02.03.2016
comment
не работал для меня. Эль-Капитан 10.11.4. Замена извести, предложенная Конрадом в следующем ответе, сработала. - person Assaf Shomer; 21.04.2016
comment
Мой гитк тоже не работал из графического интерфейса, поэтому я последовал совету @lo5an, но сначала мне пришлось brew uninstall git - person jotaEsse; 29.04.2016
comment
Я установил Tcl 8.6 без brew, загрузив установочный пакет ActiveTcl. Гитк теперь работает нормально. - person Pasi Välkkynen; 23.05.2016
comment
Я успешно установил tcl 8.6.4.1 с помощью brew cask, но info patchlevel все еще показывает 8.5.9 после установки. что мне не хватает? - person Renaud; 09.06.2016
comment
Что ж, вот ответ на мой предыдущий комментарий: -newer-version" title="idle предупреждает о старой версии tcl, даже если я установил более новую версию"> stackoverflow.com/questions/21129498/ - person Renaud; 09.06.2016
comment
на самом деле tclsh теперь дает 8.6.4, но wish по-прежнему дает 8.5.9, и я все еще получаю сообщение об ошибке при попытке запустить gitk - person Renaud; 09.06.2016
comment
Если я попытаюсь запустить brew cask install tcl в командной строке желаний, я получу следующую ошибку: неверное имя команды brew - person mrbela; 05.07.2016
comment
@mrbela: ты нашел решение? - person Sagar Trehan; 08.11.2016
comment
@SagarTrehan нет, извини. - person mrbela; 15.11.2016
comment
@edA-qamort-ora-y Обновленный tcl, вероятно, установлен под /usr/local/bin, тогда как предыдущий двоичный файл tcl находится под /usr/bin. Вы можете убедиться в этом, запустив $ whereis wish. Обходной путь — установить приоритет /usr/local/bin в моем bashrc, установив export PATH=/usr/local/bin:$PATH. После этого gitk работает. - person kc2uno; 12.12.2016
comment
Я получил предупреждение: Бочка для tcl уже установлена. и даже после переустановки tcl gitk все еще не работает: brew cask переустановите tcl - person Malik Shahzad; 04.01.2017
comment
@Malik, тебе нужно установить доморощенный - person n_b; 20.07.2017

Я также обнаружил ту же проблему с точно такой же версией git и OSX. В качестве временного обходного пути я предлагаю вам сделать следующее:

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

и замените все вхождения лайма на любой желаемый цвет (я использовал #99FF00). Вот команда vim:

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

РЕДАКТИРОВАТЬ: пожалуйста, следуйте ответу Кейта Б для постоянного исправления.

person Konrad    schedule 07.01.2016
comment
Мне пришлось изменить шестнадцатеричный код на зеленый, чтобы заставить его работать, в противном случае он не работал в строке 3400. - person ; 08.01.2016
comment
Используя MacPorts, этот файл был расположен в /opt/local/bin/gitk - person edA-qa mort-ora-y; 01.02.2016
comment
У меня была такая же проблема в Ubuntu 12.04 после обновления git/gitk до версии 2.7.0. У меня ткл 8.5.0. и в стандартных репозиториях Ubuntu 12 нет доступных обновлений, поэтому этот обходной путь был решением в моем контексте. - person AlejandroVD; 02.02.2016
comment
@Конрад: Спасибо! Для всех остальных на OSX замените 1liner: sed -i.lime_color_replace_backup 's/lime/"#99FF00"/g' /usr/local/bin/gitk - person bgs; 07.04.2016
comment
вам может понадобиться chmod u+w /usr/local/bin/gitk заранее - person Renaud; 09.06.2016
comment
Мой файл gitk был на самом деле в /usr/local/git/bin/ Также, чтобы сохранить файл только для чтения, сделайте это в vi :w !sudo tee % - person Alex Bravo; 15.08.2016
comment
Отлично работает на MacOS Sierra - person Thiago Pereira; 26.09.2016
comment
В usr/local/bin/gitk уже есть #99FF00 вместо лайма. но все еще получаю сообщение об ошибке, упомянутое в вопросе. - person Malik Shahzad; 04.01.2017

@Конрад Спасибо за помощь!! Хотя ответ правильный, имейте в виду, что ваша команда

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

содержит две разные кавычки, которые будут определяться. выдать ошибку, если скопировано и вставлено.

Итак, чтобы пройти через это, я должен был сделать:

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

И внутри вим:

:%s/lime/"#99FF00"/g
person Lukars    schedule 08.01.2016
comment
Я тоже это обнаружил. У меня достаточно кармы, чтобы я смог отредактировать ответ Конрада. - person George V. Reilly; 10.01.2016
comment
Я согласен. Это должно было быть редактированием ответа Конрада. - person ReggieB; 14.01.2016

Если вы не хотите использовать Caskroom, выполните следующие действия:

$ brew install tcl-tk
$ brew link tcl-tk --force
person merito    schedule 02.05.2016
comment
Это сработало отлично, спасибо. Однако мне пришлось использовать link tcl-tk --force --overwrite. - person Lenar Hoyt; 18.06.2016

Я столкнулся с той же проблемой в системе Ubuntu. Затем я перехожу к шагу ниже, чтобы решить проблему.

  1. откройте файл /usr/bin/gitk в любом текстовом редакторе

  2. искать ключевое слово «лайм» в файле

  3. заменить «лайм» на «зеленый» со всем в файле

  4. сохранить изменения в файле

  5. попробуйте еще раз gitk, тогда он работает

person kaushal sharma    schedule 20.07.2016

Я использую MAC с Yosemetti и выполнил следующие шаги для решения проблемы.

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

Спасибо @kaushal sharma, последовал вашему ответу с изменением пути gitk.

person Venu Madhav    schedule 07.09.2016

Полезное дополнение к хорошим ответам, предлагающим заменить все вхождения слова «лайм» словом «зеленый» в файле /usr/bin/gitk или /usr/local/git/bin/gitk:

Замена вхождений "лайма" в указанном выше файле "gitk" иногда бывает недостаточно.

Вам также необходимо выполнить тот же процесс замены для файла ~/.config/git/gitk или удалить этот файл.

person sdive    schedule 27.06.2016

Следуйте приведенным выше инструкциям, но дополнительно сделайте следующее:

перед запуском vi: chmod +w /usr/local/bin/gitk

после закрытия vi: chmod -w /usr/local/bin/gitk

person riscv    schedule 13.01.2016
comment
Обратите внимание, что выше не имеет контекста в ответах, так как их можно сортировать по-разному. Было бы лучше дать прямую ссылку на ответ, на который вы ссылаетесь. - person ale; 15.01.2016

Убедитесь, что ваш путь указан правильно, когда вы пробуете решение Кейта Б. Запуск brew doctor показал, что у меня был /usr/bin до /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
person kletterstein    schedule 22.05.2016

Спасибо, Конрад, у меня это работает с шагом ниже

  1. обновление sudo варева
  2. sudo brew cask установить tcl

-

person user1665785    schedule 07.03.2017
comment
Кит Би предложил это сделать. - person ReggieB; 08.03.2017