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

127

Я установил 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.

ReggieB
источник

Ответы:

197

Вы можете проверить свою версию 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теперь работающую.

Кейт Бертельсен
источник
3
Здесь есть что-то странное с использованием MacPorts. Tcl версии 8.6.4 установлен, но желаю сообщить о версии 8.5.9.
edA-qa mort-ora-y
4
После того, как я установил новый Tcl / Tk, мне нужно было сделать это brew install --build-from-source git, git guiчтобы начать работу gitkс обновленным Tcl.
lo5an
1
С тех пор я обнаружил предостережение: если у вас установлен tcl 8.6.4, возникнут rbenvпроблемы с установкой новых версий Ruby.
Кейт Бертельсен
3
Я установил Tcl 8.6 без brew, скачав установочный пакет ActiveTcl . Gitk теперь работает нормально.
Паси Вэлккинен
1
Если я попытаюсь запустить brew cask install tclв командной строке wish, я получаю следующую ошибку: недопустимое имя команды "brew"
mrbela
49

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

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

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

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

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

Konrad
источник
Мне пришлось изменить шестнадцатеричный код на «зеленый», чтобы заставить его работать, в противном случае он не работал в строке 3400.
При использовании MacPorts этот файл находился в/opt/local/bin/gitk
edA-qa mort-ora-y
У меня была такая же проблема на ubuntu 12.04 после обновления git / gitk до версии 2.7.0. У меня tcl 8.5.0. и в стандартных репозиториях ubuntu 12 обновление недоступно, поэтому этот обходной путь был решением в моем контексте.
AlejandroVD
@Konrad: Спасибо! Для всех, кто работает на OSX, 1liner заменяет:sed -i.lime_color_replace_backup 's/lime/"#99FF00"/g' /usr/local/bin/gitk
bgs
вам может понадобиться chmod u+w /usr/local/bin/gitkзаранее
Renaud
9

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

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

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

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

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

А внутри vim:

:%s/lime/"#99FF00"/g
Lukars
источник
2
Я тоже это обнаружил. У меня достаточно кармы, чтобы я смог отредактировать ответ Конрада.
Джордж В. Рейли
Я согласен. Это должна была быть редакция ответа Конрада.
ReggieB
4

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

$ brew install tcl-tk
$ brew link tcl-tk --force
Merito
источник
Отлично сработало, спасибо. link tcl-tk --force --overwriteХотя мне пришлось использовать .
Ленар Хойт
4

У меня была такая же проблема в системе ubuntu. Затем я перейду к следующему шагу, чтобы решить проблему.

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

  2. поиск по ключевому слову "лайм" в файле

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

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

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

Каушал Шарма
источник
2

Я использую 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.

Вену Мадхав
источник
2

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

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

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

sdive
источник
0

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

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

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

riscv
источник
Обратите внимание, что «выше» не имеет контекста в ответах, поскольку их можно сортировать по-разному. Лучше дать ссылку прямо на ответ, о котором вы говорите.
эль
0

Убедитесь, что ваш путь установлен правильно, когда пробуете решение Кейта Б. Запуск 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
kletterstein
источник
0

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

  1. sudo brew update
  2. sudo brew cask установить tcl

-

user1665785
источник
Это предложил Кайет Би.
ReggieB 08