ฉันจะ "ผสาน" ไฟล์ข้อความสองไฟล์ได้อย่างไร


13

ฉันเพิ่งอัพเกรดจาก Ubuntu 12.04 เป็น 12.10 และ ณ จุดหนึ่งก็พบว่ามีไฟล์ Apache config ขัดแย้งapache2.confกัน apache2.conf.dpkg-distฉันไม่ให้ฉันเป็นตัวเลือกที่ผสานที่จุดนั้นดังนั้นฉันเพิ่งปฏิเสธแฟ้มใหม่และติดตั้งบันทึกแฟ้มใหม่เป็น

ฉันสามารถ diff สองไฟล์ด้วยdiff apache2.conf apache2.conf.dpkg-distและรับเฉพาะบรรทัดที่แตกต่างกัน แต่ฉันต้องการผสานทั้งสองแบบด้วยตนเองว่าฉันจะแก้ไขข้อขัดแย้งใน SVN หรือคอมไพล์ได้อย่างไร ฉันจะทำสิ่งนั้นได้อย่างไร


โดยไม่ต้องแยกวิเคราะห์ที่เหมาะสมคุณสามารถผสานด้วยตนเอง
เดซี่

คำตอบ:



2

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

น่าเสียดายที่ Ubuntu และการกระจายหลักอื่น ๆ ที่ฉันรู้จักทำให้การผสานสามทางเป็นไปอย่างสมบูรณ์เมื่ออัปเดตไฟล์การกำหนดค่า คุณสามารถได้ใกล้ชิดอย่างไรกับetckeeper Etckeeperเป็นโปรแกรมเสริมสำหรับ APT ซึ่งเป็นเครื่องมือจัดการแพ็คเกจที่ใช้โดย Debian และตราสารอนุพันธ์ที่จัดการ/etcในระบบควบคุมเวอร์ชัน (Bazaar, Darcs, Git, Mercurial); มันถูกส่งไปยังระบบอื่นรวมถึง Yum ใน Fedora ด้วย ฉันแนะนำให้ใช้ etckeeper; /etcก็ยังเป็นวิธีที่ดีของการติดตามการเปลี่ยนแปลงที่คุณทำใน

บางโปรแกรมจัดการไฟล์การกำหนดค่าด้วยucfแต่นั่นไม่ใช่สิ่งที่คุณสามารถควบคุมได้ในฐานะผู้ใช้

โดยทั่วไปเมื่อคุณมีบรรพบุรุษและสองรุ่นที่คุณสามารถทำได้ผสานสามทางกับmergeยูทิลิตี้ที่มาพร้อมกับRCSหรือdiff3 -mจากdiffutils

นอกจากนี้ยังมีโปรแกรม diff และการผสานแบบโต้ตอบมากมาย Emacs และเป็นกลุ่มมีอินเตอร์เฟซที่เป็นทำมากที่สุดผู้ชมต่าง


1

รายการโปรดส่วนตัวของฉันคือkdiff3- ฉันไม่รู้ถ้ามีรุ่น Ubuntu สำหรับมัน ตามที่หน้าแรกก็แค่ใช้QT

ด้วยเครื่องมือดังกล่าวคุณสามารถรวมสองไฟล์ (หรือสามไฟล์) เข้ากับไฟล์ใหม่ ไม่ว่าจะโดยการเลือกข้างสำหรับความแตกต่างหรือโดยการแก้ไขข้อขัดแย้งด้วยตนเอง


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