gitk ne démarre pas sur Mac: nom de couleur inconnu «lime»

127

J'ai installé git sur un mac via brew install git. Lorsque j'essaye de démarrer gitk, j'obtiens l'erreur suivante:

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)

Il semble que mon Mac n'a pas de couleur nommée lime.

Puis-je ajouter une couleur citron vert à l'environnement ou existe-t-il une meilleure solution?

La version git est 2.7.0 et le Mac exécute Yosemite 10.10.5

ReggieB
la source

Réponses:

197

Vous pouvez vérifier votre version de Tcl / Tk en exécutant wishet en utilisant la commande info patchlevel. Il semble que git 2.7.0, Tcl / Tk 8.5.9 et OS X 10.11 El Capitan ne fonctionnent pas bien ensemble.

J'ai résolu ce problème en faisant brew cask install tcl, qui a installé 8.6.4, et gitkfonctionne maintenant.

Kate Bertelsen
la source
3
Il y a quelque chose d'étrange à utiliser MacPorts ici. La version 8.6.4 de Tcl est installée, mais Wish rapporte 8.5.9.
edA-qa mort-ora-y
4
Une fois que j'ai installé une nouvelle Tcl / Tk, je devais faire brew install --build-from-source gitafin d'obtenir git guicommencer gitkla mise à jour Tcl.
lo5an
1
Une mise en garde que j'ai découverte depuis: si vous avez installé tcl 8.6.4, vous avez du rbenvmal à installer de nouvelles versions de Ruby.
Kate Bertelsen
3
J'ai installé Tcl 8.6 sans brew, en téléchargeant le package d'installation ActiveTcl . Gitk fonctionne très bien maintenant.
Pasi Välkkynen
1
Si j'essaie d'exécuter brew cask install tcldans la ligne de commande de souhait, j'obtiens l'erreur suivante: nom de commande non valide "brew"
mrbela
49

J'ai également trouvé le même problème avec exactement la même version de git et OSX. Comme solution de contournement temporaire, je vous suggère de faire ce qui suit:

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

et remplacez toutes les occurrences de chaux par la couleur de votre choix (j'ai utilisé # 99FF00). Voici la commande vim:

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

EDIT: Veuillez suivre la réponse de Keith B pour une correction permanente.

Konrad
la source
J'ai dû changer le code hexadécimal en "vert" pour le faire fonctionner, il a échoué sur la ligne 3400 sinon.
En utilisant MacPorts, ce fichier a été localisé dans/opt/local/bin/gitk
edA-qa mort-ora-y
J'ai eu le même problème sur ubuntu 12.04 après la mise à jour de git / gitk vers la version 2.7.0. J'ai tcl 8.5.0. et aucune mise à jour n'est disponible dans les dépôts standard d'ubuntu 12, cette solution de contournement était donc la solution dans mon contexte.
AlejandroVD le
@Konrad: Merci! Pour n'importe qui d'autre sur OSX, 1liner remplace:sed -i.lime_color_replace_backup 's/lime/"#99FF00"/g' /usr/local/bin/gitk
bgs
vous devrez peut-être au chmod u+w /usr/local/bin/gitkpréalable
Renaud
9

@Konrad Merci pour l'aide !! Bien que la réponse soit correcte, sachez que votre commande

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

contient deux guillemets différents, ce qui définira. jette une erreur si copié et collé.

Donc, pour y arriver, je devais faire:

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

Et à l'intérieur de vim:

:%s/lime/"#99FF00"/g
Lukars
la source
2
J'ai découvert ça aussi. J'ai assez de karma pour pouvoir modifier la réponse de Konrad.
George V. Reilly
Je suis d'accord. Cela aurait dû être une modification de la réponse de Konrad.
ReggieB le
4

Si vous ne souhaitez pas utiliser Caskroom, suivez ceci:

$ brew install tcl-tk
$ brew link tcl-tk --force
merito
la source
Cela a très bien fonctionné, merci. J'ai dû utiliser link tcl-tk --force --overwritecependant.
Lenar Hoyt
4

J'étais confronté au même problème dans le système ubuntu. Ensuite, je passe à l'étape ci-dessous pour résoudre le problème.

  1. ouvrez le fichier / usr / bin / gitk dans n'importe quel éditeur de texte

  2. rechercher le mot-clé «lime» dans le fichier

  3. remplacer «lime» par «vert» par tout dans le fichier

  4. enregistrer les modifications de fichier

  5. essayez à nouveau gitk puis ça marche

kaushal sharma
la source
2

J'utilise MAC avec Yosemetti et j'ai suivi les étapes ci-dessous pour résoudre.

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

Merci @kaushal sharma, a suivi votre réponse, avec un changement dans le chemin gitk.

Venu Madhav
la source
2

Ajout utile aux bonnes réponses suggérant de remplacer toutes les occurrences du mot "lime" par le mot "green" dans le fichier / usr / bin / gitk ou / usr / local / git / bin / gitk:

Le remplacement des occurrences de "lime" dans le fichier "gitk" ci-dessus n'est parfois pas suffisant.

Vous devez également effectuer le même processus de remplacement sur le fichier ~/.config/git/gitkou supprimer ce fichier.

sdive
la source
0

Suivez les instructions ci-dessus, mais procédez également comme suit:

avant d'exécuter vi: chmod + w / usr / local / bin / gitk

après la fermeture de vi: chmod -w / usr / local / bin / gitk

riscv
la source
Veuillez noter que «ci-dessus» n'a pas de contexte dans les réponses, car elles peuvent être triées de différentes manières. Il vaudrait mieux établir un lien direct avec la réponse à laquelle vous faites référence.
ale
0

Assurez-vous que votre chemin est correctement défini lorsque vous essayez la solution de Keith B. L'exécution a brew doctormontré que j'avais / usr / bin avant / 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
la source
0

Merci Konrad, cela fonctionne pour moi avec l'étape ci-dessous

  1. mise à jour sudo brew
  2. sudo brew cask installer tcl

-

user1665785
la source
C'est Kieth B qui a suggéré de faire ça.
ReggieB