หากต้องการติดตามคำตอบของ Charles Bailey นี่คือการตั้งค่าคอมไพล์ของฉันที่ใช้p4merge (เครื่องมือผสาน 3way แบบข้ามแพลตฟอร์มฟรี); ทดสอบบน msys Git (Windows) ติดตั้ง:
git config --global merge.tool p4merge
git config --global mergetool.p4merge.cmd 'p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"'
หรือจากเชลล์ windows cmd.exe บรรทัดที่สองจะกลายเป็น:
git config --global mergetool.p4merge.cmd "p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\""
การเปลี่ยนแปลง (สัมพันธ์กับ Charles Bailey):
- เพิ่มไปยังการกำหนดค่า git ทั่วโลกเช่นที่ถูกต้องสำหรับโครงการ git ทั้งหมดไม่เพียง แต่ในปัจจุบัน
- ค่าการกำหนดค่าเครื่องมือแบบกำหนดเองอยู่ใน "mergetool. [tool] .cmd" ไม่ใช่ "ผสาน [tool] .cmd" (โง่ฉันใช้เวลาหนึ่งชั่วโมงในการแก้ปัญหาว่าทำไม git จึงบ่นเกี่ยวกับเครื่องมือที่ไม่มีอยู่)
- เพิ่มเครื่องหมายคำพูดคู่สำหรับชื่อไฟล์ทั้งหมดเพื่อให้ไฟล์ที่มีช่องว่างยังคงพบได้โดยเครื่องมือผสาน (ฉันทดสอบใน msys Git จาก Powershell)
- โปรดทราบว่าโดยค่าเริ่มต้น Perforce จะเพิ่มการติดตั้ง dir ให้กับ PATH ดังนั้นไม่จำเป็นต้องระบุพา ธ เต็มไปยัง p4merge ในคำสั่ง
ดาวน์โหลด: http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools
แก้ไข (ก.พ. 2014)
ตามที่ระบุโดย@Gregory Pakosz msys gitล่าสุดตอนนี้ " ดั้งเดิม " รองรับp4merge (ทดสอบบน1.8.5.2.msysgit.0 )
คุณสามารถแสดงรายการเครื่องมือที่รองรับได้โดยเรียกใช้:
git mergetool --tool-help
คุณควรเห็นp4mergeในรายการที่ใช้ได้หรือใช้ได้ ถ้าไม่โปรดอัพเดทคอมไพล์ของคุณ
ถ้าp4mergeถูกแสดงรายการพร้อมใช้งานอยู่ในPATHของคุณและคุณต้องตั้งค่าmerge.tool :
git config --global merge.tool p4merge
ถ้ามันถูกระบุว่าถูกต้องคุณต้องกำหนดmergetool.p4merge.pathเพิ่มเติมจากmerge.tool :
git config --global mergetool.p4merge.path c:/Users/my-login/AppData/Local/Perforce/p4merge.exe
- ด้านบนเป็นเส้นทางตัวอย่างเมื่อติดตั้ง p4merge สำหรับผู้ใช้ปัจจุบันไม่ใช่ทั้งระบบ (ไม่ต้องการสิทธิ์ผู้ดูแลระบบหรือการยกระดับ UAC)
- แม้ว่า
~
ควรจะขยายไปยังโฮมไดเร็กตอรี่ของผู้ใช้ปัจจุบัน (ดังนั้นในทางทฤษฎีแล้วพา ธ ควร~/AppData/Local/Perforce/p4merge.exe
) สิ่งนี้ไม่ได้ผลสำหรับฉัน
- ยิ่งไปกว่านั้นการใช้ประโยชน์จากตัวแปรสภาพแวดล้อม (เช่น
$LOCALAPPDATA/Perforce/p4merge.exe
) ดูเหมือนว่า git จะไม่ขยายตัวแปรสภาพแวดล้อมสำหรับพา ธ (ถ้าคุณรู้วิธีการทำงานนี้โปรดแจ้งให้เราทราบหรืออัปเดตคำตอบนี้)