วิธีใช้ Xcode 4 mergetool ในรูปแบบสแตนด์อโลน


8

บางครั้งฉันต้องคอมไพล์การคอมไพล์บนคอนโซล ถึงตอนนี้สำหรับการแก้ไขข้อขัดแย้งฉันใช้ FileMerge ของ Xcode 3 (คุณสามารถเปิดบนคอนโซลโดยใช้คำสั่ง 'opendiff') หากความขัดแย้งแสดงขึ้นฉันใช้ 'git mergetool' ซึ่งเรียก opendiff สำหรับไฟล์ที่ขัดแย้งกันแต่ละไฟล์โดยอัตโนมัติ

อย่างไรก็ตาม Xcode 4 มีองค์ประกอบ mergetool ที่ดีกว่าสำหรับการแก้ไขข้อขัดแย้ง ฉันเชื่อว่าองค์ประกอบนี้เป็นส่วนหนึ่งของ Xcode 4 ที่ปฏิบัติการได้แทนที่จะเป็นแบบสแตนด์อโลน จะช่วยให้คุณสามารถดูตัวอย่างไฟล์ที่ผสานและแก้ไขรหัสที่ผสานโดยตรงเป็นกรณี ๆ ไปซึ่งจะทำให้การผสานความขัดแย้งที่ซับซ้อนเป็นไปอย่างรวดเร็วและเป็นที่น่าพอใจอย่างเหลือเชื่อ

มีวิธีใดบ้างที่จะใช้ Xcode 4 mergetool เมื่อเรียกใช้ 'git mergetool' จากเทอร์มินัล

ฉันไม่พบไฟล์ปฏิบัติการสำหรับเครื่องมือนี้ภายในชุด Xcode 4 แฮ็คใด ๆ ที่ประสบความสำเร็จจะได้รับการต้อนรับ


ในกรณีที่บุคคลอื่นสนใจคุณสมบัตินี้: ดูเหมือนว่าไม่มีวิธีการทำอย่างเป็นทางการ ฉันส่งคำขอคุณลักษณะไปยัง Apple ผ่านทางรายงานข้อผิดพลาด นี่คือเรดาร์ ฉันคิดว่ามันค่อนข้างสิ้นหวัง แต่คุณไม่เคยรู้ สำหรับใครที่สนใจฉันแนะนำให้แสดงความสนใจโดยส่งรายงานบั๊กที่คล้ายกันไปยัง Apple
Ricardo Sanchez-Saez

คำตอบ:


4

opendiff รับอาร์กิวเมนต์ชื่อไฟล์สองข้อและพารามิเตอร์ --ancestor ที่มีชื่อไฟล์ที่สามเพื่อสร้าง diff สามทางและพารามิเตอร์ --merge เพื่อพูดว่าไฟล์เอาต์พุตที่ใช้สำหรับการแก้ไขข้อขัดแย้ง

ไปเลย:

[mergetool "opendiff"]
    cmd = "opendiff \"$LOCAL\"  \"$REMOTE\" \"$(if test -f \"$BASE\"; then echo \"--ancestor $BASE\"; else echo \"--ancestor $LOCAL\"; fi)\" --merge=\"$MERGED\" "
[merge]
    tool = opendiff

นั่นควรทำให้ opitiff ใช้คอมไพล์เป็นเครื่องมือผสานเมื่อมีข้อขัดแย้งในการรวม

ที่กล่าวว่าฉันชอบDiffMergeมากจาก SourceGearซึ่งเป็นเครื่องมือ diff และสามทางแบบผสานที่ทำหน้าที่แก้ปัญหาความขัดแย้งได้ดีกว่า และในเอกสารของ DiffMerge มีสิ่งที่ต้องบอก git เพื่อให้เป็นเครื่องมือ diffing และการผสานที่เป็นค่าเริ่มต้น


ขอบคุณที่พยายามช่วย แต่ Filemerge / opendiff ไม่ใช่สิ่งที่ฉันพยายามจะใช้ นอกจากนี้ฉันลอง DiffMerge (และ DeltaWalker สำหรับสิ่งที่คุ้มค่า) และฉันไม่ชอบ UI มาก คาไลโดสโคปเป็น waaay nicer ที่ดีกว่า แต่มันไม่ได้มีการผสาน / แก้ไขเพียงแค่แสดงความแตกต่าง
Ricardo Sanchez-Saez

ฉันค่อนข้างแน่ใจว่า Xcode 4 เป็นเพียงการตัดคำ FileMerge ฉันค้นพบความผิดหวังแบบเดียวกันกับ Kaleidoscope
Dan Ray

ฉันจะบอกว่า Xcode 4 ไม่ได้ห่อ FileMerge บน FileMerge คุณไม่สามารถแก้ไขไฟล์ที่ผสานคุณเพียงแค่เลือกด้านของการผสานที่คุณต้องการใช้สำหรับแต่ละข้อขัดแย้ง ในตัวแก้ไขความขัดแย้งแบบดึงของ Xcode 4 คุณสามารถแก้ไขบรรทัดที่ขัดแย้งกันและทำการดึงด้วยไฟล์ในแบบที่คุณต้องการ นอกจากนี้ UI แตกต่างจาก Filemerge อย่างสิ้นเชิง
Ricardo Sanchez-Saez

1
คาไลโดสโคป 2 เบต้าเปิดตัวเร็ว ๆ นี้และอนุญาตให้แก้ไขแบบอินไลน์ของไฟล์ที่ผสาน ลองดูสิมันค่อนข้างดี สิ่งเดียวที่ขาดหายไปคือสีที่แตกต่างสำหรับความขัดแย้ง (ใช้สีเดียวกับการแทนที่รหัสสำหรับสิ่งนั้น)
Ricardo Sanchez-Saez

หลังจากผ่านไปหลายเดือนด้วยการใช้ Kaleidoscope และถึงแม้ว่ามันจะดี แต่ฉันก็ต้องบอกว่ามันยังเป็นรถบักกี้และ / หรือทำให้สับสนโดยเฉพาะอย่างยิ่งเมื่อเทียบกับ Xcode 4.x องค์ประกอบการแก้ไขข้อขัดแย้ง ยังหวังว่า Apple จะทำสิ่งที่คาดไม่ถึงและใช้มันเป็นเครื่องมือแบบสแตนด์อโลนที่เรียกได้ว่า Tower ;-)
Ricardo Sanchez-Saez

0

คุณสามารถแก้ไขในเท็กซ์เอดิเตอร์ (ขั้นพื้นฐาน) ภายใน FileMerge โดยการเปิดบานหน้าต่างเอดิเตอร์ - ซึ่งถูกปิดโดยดีฟอลต์ หากต้องการเปิดตัวแก้ไขใน FileMerge ให้ลากจุดด้านล่างคอลัมน์กลางขึ้นเพื่อเปิดบานหน้าต่างตัวแก้ไข


-1

จบลงด้วยการทำงานสำหรับฉัน

[merge]
  tool = opendiff

[mergetool]
  keepBackup = false

[mergetool "opendiff"]
  cmd = "opendiff \"$LOCAL\" \"$REMOTE\" -merge \"$MERGED\""

2
Opendiff คือสิ่งที่ Xcode 3.x ใช้สำหรับการรวม คำถามของฉันเกี่ยวกับองค์ประกอบการผสาน Xcode 4.x ซึ่งเป็นเครื่องมือที่แตกต่างอย่างสิ้นเชิง ขอบคุณอยู่ดี
Ricardo Sanchez-Saez
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.