gitk จะไม่เริ่มทำงานบน Mac: ชื่อสีที่ไม่รู้จัก "lime"


127

ฉันได้ติดตั้งคอมไพล์บนเครื่อง 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

คำตอบ:


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 เวอร์ชันใหม่
Kate Bertelsen

3
ผมติดตั้ง Tcl 8.6 โดยไม่ต้องชงโดยการดาวน์โหลดแพคเกจติดตั้ง ActiveTcl Gitk ทำงานได้ดีในขณะนี้
Pasi Välkkynen

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

แก้ไข: โปรดทำตามคำตอบ Keith B สำหรับการแก้ไขอย่างถาวร


ฉันต้องเปลี่ยนรหัสฐานสิบหกเป็น "สีเขียว" เพื่อให้ใช้งานได้มิฉะนั้นจะล้มเหลวในบรรทัด 3400

การใช้ MacPorts ไฟล์นี้อยู่ใน/opt/local/bin/gitk
edA-qa mort-ora-y

ฉันมีปัญหาเดียวกันใน Ubuntu 12.04 หลังจากอัปเดต git / gitk เป็นเวอร์ชัน 2.7.0 ฉันมี tcl 8.5.0 และไม่มีการอัปเดตใน repos 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

มีเครื่องหมายคำพูดสองแบบที่แตกต่างกันซึ่งจะ def เกิดข้อผิดพลาดหากคัดลอกและวาง

ดังนั้นเพื่อที่จะผ่านมันไปได้ฉันต้องทำ:

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

และภายในกลุ่ม:

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

2
ฉันค้นพบสิ่งนี้ด้วย ฉันมีกรรมมากพอที่จะแก้ไขคำตอบของคอนราดได้
George

ฉันเห็นด้วย. นี่น่าจะเป็นการแก้ไขคำตอบของ Konrad
ReggieB

4

หากไม่ต้องการใช้Caskroomให้ทำตามนี้:

$ brew install tcl-tk
$ brew link tcl-tk --force

มันใช้งานได้ดีขอบคุณ ฉันต้องใช้link tcl-tk --force --overwriteแม้ว่า
Lenar Hoyt

4

ฉันประสบปัญหาเดียวกันในระบบอูบุนตู จากนั้นฉันทำตามขั้นตอนด้านล่างเพื่อแก้ไขปัญหา

  1. เปิดไฟล์ / usr / bin / gitk ในโปรแกรมแก้ไขข้อความใด ๆ

  2. ค้นหาคำหลัก 'มะนาว' ในไฟล์

  3. แทนที่ 'lime' เป็น 'green' ด้วยไฟล์ทั้งหมด

  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

นอกจากนี้คำตอบที่เป็นประโยชน์ซึ่งแนะนำให้แทนที่คำว่า "lime" ทั้งหมดด้วยคำว่า "green" ในไฟล์ / usr / bin / gitk หรือ / usr / local / git / bin / gitk:

การแทนที่สิ่งที่เกิดขึ้นของ "lime" ในไฟล์ "gitk" ข้างต้นบางครั้งอาจไม่เพียงพอ

คุณต้องทำกระบวนการแทนที่เดียวกันกับไฟล์~/.config/git/gitkหรือลบไฟล์นั้น


0

ทำตามคำแนะนำด้านบน แต่ให้ทำสิ่งต่อไปนี้เพิ่มเติม:

ก่อนรัน vi: chmod + w / usr / local / bin / gitk

หลังจากปิด vi: chmod -w / usr / local / bin / gitk


โปรดทราบว่า "ด้านบน" ไม่มีบริบทในคำตอบเนื่องจากสามารถจัดเรียงคำตอบได้หลายวิธี จะเป็นการดีกว่าหากเชื่อมโยงโดยตรงกับคำตอบที่คุณอ้างถึง
เบียร์

0

ตรวจสอบให้แน่ใจว่าเส้นทางของคุณตั้งค่าถูกต้องเมื่อลองใช้โซลูชันของ Keith B การรัน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

0

ขอบคุณ Konrad มันทำงานให้ฉันด้วยขั้นตอนด้านล่าง

  1. อัปเดตชง sudo
  2. sudo brew cask ติดตั้ง tcl

-


Kieth B เป็นคนแนะนำให้ทำอย่างนั้น
ReggieB
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.