เวลาทำงานกับโค้ดหรือไฟล์ข้อความที่มีหลายเวอร์ชัน ปัญหาชวนปวดหัวที่สุดอย่างหนึ่งคือ Merge Conflict หรือการที่ไม่รู้ว่าไฟล์สองไฟล์ (หรือสามไฟล์) มีจุดไหนที่ต่างกันบ้าง
ถ้าคุณกำลังมองหาโปรแกรมช่วยเปรียบเทียบโค้ดและประสานไฟล์ที่ ฟรี, Open-source, และเก่งเรื่อง 3-Way Merge โปรแกรม KDiff3 คือหนึ่งในตัวเลือกอันดับต้น ๆ ที่ทำงานได้อย่างแม่นยำและไว้ใจได้เสมอ
KDiff3 คืออะไร?
KDiff3 เป็นเครื่องมือประเภท Graphical File and Directory Comparison/Merge Tool ที่พัฒนามาอย่างยาวนาน สามารถรันได้ข้ามระบบปฏิบัติการ ทั้ง Windows, macOS และ Linux
จุดเด่นสำคัญของ KDiff3 คือการวิเคราะห์ความแตกต่างของข้อความแบบ บรรทัดต่อบรรทัด (Line-by-line) และ ตัวอักษรต่อตัวอักษร (Character-by-character) พร้อมความสามารถในการเปรียบเทียบได้สูงสุดถึง 3 ไฟล์พร้อมกัน
4 ฟีเจอร์เด็ดที่ทำให้ KDiff3 โดดเด่น
การทำ 3-Way Merge
เมื่อเกิด Conflict ใน Git ทั่วไป เครื่องมืออื่นอาจแสดงแค่ “เวอร์ชันของเรา” กับ “เวอร์ชันของเขา” แต่ KDiff3 สามารถดึงไฟล์ Base (จุดร่วมก่อนแก้) มาเปรียบเทียบร่วมด้วยได้ ทำให้เห็นชัดเจนว่าเดิมทีโค้ดเป็นอย่างไร ใครแก้ไขตรงไหน และช่วยเลือกการรวมโค้ดอัตโนมัติได้อย่างชาญฉลาด
เปรียบเทียบระดับ Directory (Folder Comparison)
ไม่ได้ใช้เปรียบเทียบได้แค่ไฟล์เดียว แต่สามารถเลือกโฟลเดอร์ 2-3 โฟลเดอร์มาสแกนดูได้ว่า มีไฟล์ไหนเพิ่มขึ้น ลดลง หรือเนื้อหาข้างในต่างกันอย่างไร พร้อมสั่ง Synchronize หรือ Merge ทั้งโฟลเดอร์ได้ทันที
ตรวจจับการเปลี่ยนแปลงระดับตัวอักษร
ในขณะที่เครื่องมือบางตัวบอกแค่ว่า “บรรทัดนี้ไม่ตรงกัน” KDiff3 จะไฮไลต์เน้นย้ำให้เห็นถึงระดับตัวอักษรหรือช่องว่าง (Space/Tab) ช่วยให้แก้อักขระซ่อนเร้นหรือคำผิดเล็ก ๆ น้อย ๆ ได้ง่ายขึ้น
รองรับการทำงานร่วมกับ Git
สามารถตั้งค่า KDiff3 ให้เป็นโปรแกรมหลักสำหรับทำ git diff หรือ git mergetool ได้ เมื่อเจอ Conflict ใน Git เพียงพิมพ์คำสั่ง KDiff3 ก็จะเด้งหน้าต่างขึ้นมาให้เราเลือกแก้ได้อย่างสะดวก
เปรียบเทียบ KDiff3 กับเครื่องมืออื่น ๆ
| คุณสมบัติ | KDiff3 | VS Code (Built-in) | Beyond Compare |
| ค่าใช้จ่าย | ฟรี (Open-Source) | ฟรี | มีค่าบริการ (Commercial) |
| 3-Way Merge | โดดเด่นมาก มีระบบ Auto-merge แม่นยำ | ทำได้ดีในเวอร์ชันใหม่ ๆ | ทำได้ดีมาก |
| เปรียบเทียบโฟลเดอร์ | ทำได้ในตัว | ต้องลง Extension เพิ่ม | ทำได้ดีเยี่ยม |
| หน้าตา UI | คลาสสิก/เรียบง่าย | ทันสมัย | ทันสมัย/ใช้งานง่าย |
วิธีตั้งค่า KDiff3 ให้เป็น Git Merge Tool
หากต้องการใช้ KDiff3 ช่วยแก้ Conflict ใน Git สามารถตั้งค่าผ่าน Terminal/Command Prompt ด้วยคำสั่งสั้น ๆ ได้ดังนี้
# ตั้งค่า KDiff3 เป็น diff tool git config --global diff.tool kdiff3 # ตั้งค่า KDiff3 เป็น merge tool git config --global merge.tool kdiff3 # เมื่อเกิด Merge Conflict ให้เรียกใช้งานด้วยคำสั่งนี้ git mergetool
สรุป
แม้ KDiff3 จะมีหน้าตา UI ที่ดูคลาสสิก (เน้นใช้งาน ไม่เน้นหวือหวา) แต่ในเรื่องความแม่นยำของการวิเคราะห์ไฟล์ การจัดการ 3-Way Merge และการใช้ทรัพยากรเครื่องที่ต่ำมาก KDiff3 จึงยังคงเป็นเครื่องมือคู่ใจของ Developers และ Sysadmins จำนวนมากจนถึงปัจจุบัน
อ่านเพิ่มเติม