Saya baru saja memutakhirkan dari Ubuntu 12.04 menjadi 12.10 dan pada satu titik, ia mengalami konflik file konfigurasi Apache di apache2.conf
. Saya tidak memberi saya opsi penggabungan pada saat itu, jadi saya hanya menolak file baru dan installer menyimpan file baru sebagai apache2.conf.dpkg-dist
.
Saya dapat diff kedua file dengan diff apache2.conf apache2.conf.dpkg-dist
dan hanya mendapatkan garis yang berbeda. Tapi saya ingin menggabungkan kedua jenis seperti bagaimana saya menyelesaikan konflik gabungan di SVN atau git. Bagaimana saya bisa melakukan itu?
Jawaban:
Gunakan
vimdiff
jika Anda sukavim
. Kalau tidak,diffuse
bekerja dengan baik juga.sumber
Kontrol versi memiliki lebih banyak informasi yang tersedia ketika menyelesaikan konflik: tidak hanya versi Anda dan versi orang lain tetapi juga leluhur bersama, dan dengan demikian dapat melakukan penggabungan tiga arah . Di sini, leluhur umum adalah versi asli dari file konfigurasi dalam distribusi, atau versi resmi yang terakhir Anda gabungkan dengan perubahan Anda.
Sayangnya, baik Ubuntu maupun distribusi utama lainnya yang saya tahu membuatnya tidak sepenuhnya mulus untuk melakukan penggabungan tiga arah ketika file konfigurasi diperbarui. Anda bisa mendekati, bagaimanapun, dengan penjaga dll . Etckeeper adalah tambahan untuk APT, alat manajemen paket yang digunakan oleh Debian dan turunannya, yang mengelola
/etc
sistem kontrol versi (Bazaar, Darcs, Git, Mercurial); itu telah porting ke sistem lain, termasuk Yum di Fedora. Saya sarankan menggunakan etckeeper; itu juga cara yang bagus untuk melacak perubahan yang Anda lakukan/etc
.Beberapa program mengelola file konfigurasinya dengan ucf , tetapi itu bukan sesuatu yang Anda kendalikan sebagai pengguna.
Lebih umum, ketika Anda memiliki leluhur dan dua versi, Anda bisa melakukan penggabungan tiga arah dengan
merge
utilitas yang dikirimkan dengan RCS atau dengandiff3 -m
dari diffutils .Ada juga banyak program interaktif dan penggabungan yang hebat. Emacs dan Vim memiliki antarmuka untuk itu, seperti halnya sebagian besar pemirsa berbeda .
sumber
Favorit pribadi saya adalah
kdiff3
- Saya tidak tahu, apakah ada versi Ubuntu untuk itu. Menurut homepage itu hanya menggunakan qt .Dengan alat itu Anda dapat menggabungkan dua (atau tiga) file menjadi yang baru. Baik dengan memilih sisi untuk setiap perbedaan, atau dengan menyelesaikan konflik secara manual.
sumber
kdiff3
dankdiff3-qt