O gitk não inicia no Mac: nome desconhecido da cor "lime"

127

Eu instalei o git em um mac via brew install git. Quando tento iniciar o gitk, recebo o seguinte erro:

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)

Parece que o meu Mac não tem uma cor chamada lime.

Posso adicionar uma cor de limão ao ambiente ou há uma correção melhor?

A versão git é 2.7.0 e o Mac está executando o Yosemite 10.10.5

ReggieB
fonte

Respostas:

197

Você pode verificar a versão do Tcl / Tk, executando wishe usando o comando info patchlevel. Parece que o git 2.7.0, Tcl / Tk 8.5.9 e OS X 10.11 El Capitan não funcionam bem juntos.

Resolvi esse problema brew cask install tcl, instalando o 8.6.4 e gitkfuncionando agora.

Kate Bertelsen
fonte
3
Há algo estranho usando o MacPorts aqui. A versão 8.6.4 do Tcl está instalada, mas o desejo está relatando 8.5.9.
EdA-qa mort-ora-y
4
Uma vez que eu instalei um novo Tcl / Tk, eu tinha que fazer brew install --build-from-source gita fim de obter git guipara começar gitkcom o Tcl atualizado.
lo5an
1
Uma ressalva que eu descobri desde então: se você tiver o tcl 8.6.4 instalado, terá rbenvproblemas para instalar novas versões do Ruby.
21416 Kate Bertelsen
3
Instalei o Tcl 8.6 sem brew, baixando o pacote do instalador do ActiveTcl . Gitk funciona bem agora.
Pasi Välkkynen 23/05
1
Se eu tentar executar brew cask install tcldentro da linha de comando do desejo, recebo o seguinte erro: nome de comando inválido "brew"
mrbela
49

Eu também encontrei o mesmo problema com exatamente a mesma versão do git e OSX. Como solução temporária, sugiro que você faça o seguinte:

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

e substitua todas as ocorrências de cal com a cor que você quiser (usei # 99FF00). Aqui está o comando vim:

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

Edição: Por favor, siga Keith B resposta para correção permanente.

Konrad
fonte
Eu tive que mudar o código hexadecimal para "verde" para fazê-lo funcionar, caso contrário, falharia na linha 3400.
Usando MacPorts, este arquivo foi localizado em/opt/local/bin/gitk
edA-qa mort-ora-y 1/16/16
Eu tive o mesmo problema no ubuntu 12.04 após atualizar o git / gitk para a versão 2.7.0. Eu tenho o tcl 8.5.0. e nenhuma atualização está disponível nos repositórios padrão do ubuntu 12, portanto, essa solução alternativa foi a solução no meu contexto.
AlejandroVD
@ Konrad: Obrigado! Para qualquer outra pessoa no OSX, o 1liner substitui:sed -i.lime_color_replace_backup 's/lime/"#99FF00"/g' /usr/local/bin/gitk
bgs
você pode precisar de chmod u+w /usr/local/bin/gitkantemão
Renaud
9

@ Konrad Obrigado pela ajuda !! Embora a resposta esteja correta, lembre-se de que seu comando

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

contém duas aspas diferentes, que serão definidas gerar um erro se copiado e colado.

Então, para continuar, eu tinha que fazer:

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

E dentro do vim:

:%s/lime/"#99FF00"/g
Lukars
fonte
2
Eu descobri isso também. Eu tenho karma suficiente para editar a resposta de Konrad.
George V. Reilly
Concordo. Esta deveria ter sido uma edição da resposta do Konrad.
ReggieB
4

Se você não quiser usar Caskroom, siga este procedimento:

$ brew install tcl-tk
$ brew link tcl-tk --force
merito
fonte
Isso funcionou muito bem, obrigado. Eu tive que usar link tcl-tk --force --overwriteembora.
Lenar Hoyt
4

Eu estava enfrentando o mesmo problema no sistema ubuntu. Então eu fluo abaixo da etapa para resolver o problema.

  1. abra o arquivo / usr / bin / gitk em qualquer editor de texto

  2. pesquise a palavra-chave 'lime' no arquivo

  3. substitua 'lime' por 'green' com tudo no arquivo

  4. salvar alterações de arquivo

  5. tente novamente gitk então funciona

kaushal sharma
fonte
2

Estou executando o MAC com Yosemetti e segui as etapas abaixo para resolver.

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

Obrigado @kaushal sharma, seguiu sua resposta, com uma mudança no caminho do gitk.

Venu Madhav
fonte
2

Adição útil às boas respostas que sugerem substituir todas as ocorrências da palavra "lime" pela palavra "green" no arquivo / usr / bin / gitk ou / usr / local / git / bin / gitk:

A substituição de ocorrências de "lime" no arquivo "gitk" acima às vezes não é suficiente.

Você também precisa fazer o mesmo processo de substituição no arquivo ~/.config/git/gitkou remover esse arquivo.

sdive
fonte
0

Siga as instruções acima, mas faça o seguinte:

antes de executar o vi: chmod + w / usr / local / bin / gitk

após o fechamento do vi: chmod -w / usr / local / bin / gitk

riscv
fonte
Observe que "acima" não tem contexto nas respostas, pois elas podem ser classificadas de várias maneiras. Seria melhor vincular diretamente à resposta a que você está se referindo.
ale
0

Verifique se o caminho está definido corretamente ao tentar a solução de Keith B. A corrida brew doctormostrou que eu tinha / usr / bin antes de / 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
fonte
0

Obrigado Konrad, ele funciona para mim com o passo abaixo

  1. atualização sudo brew
  2. barril de cerveja sudo instalar tcl

-

user1665785
fonte
Foi Kieth B quem sugeriu fazer isso.
ReggieB