Subversi, Git, Mercurial, dan lainnya mendukung penggabungan tiga arah (menggabungkan tambang, milik mereka, dan revisi "basis") dan mendukung alat grafis untuk menyelesaikan konflik.
Alat apa yang Anda gunakan? Windows, Mac OS X, Linux, gratis atau komersial, sebut saja.
Berikut adalah beberapa yang saya gunakan atau dengar, hanya untuk memulai percakapan:
(Saya menyadari bahwa ini seperti Best Diff Tool , tetapi berbeda karena saya secara eksplisit berfokus pada alat penggabungan tiga arah; WinMerge tidak termasuk dalam daftar, misalnya.)
version-control
merge
dvcs
Dan Fabulich
sumber
sumber
Jawaban:
Sumber terbuka KDiff3 , lintas platform
Antarmuka yang sama untuk Linux dan Windows, algoritma yang sangat cerdas untuk menyelesaikan konflik, ekspresi reguler untuk menyelesaikan konflik, mengintegrasikan dengan ClearCase, SVN, Git, MS Visual Studio, file gabungan yang dapat diedit, membandingkan direktori
Navigasi keyboardnya bagus: ctrl-panah untuk menavigasi diffs, ctrl-1, 2, 3 untuk melakukan penggabungan.
Juga, lihat https://stackoverflow.com/a/2434482/42473
sumber
kdiff3
untuk contoh.kdiff3
akan dengan senang hati membedakan dan menggabungkan seluruh pohon direktori dan telah dilakukan selama bertahun-tahun! Beberapa alat (sepertigit
) hanya dapat meluncurkannya per file, tetapi alat lain (seperti lincah) dengan senang hati akan memungkinkan Anda untuk tiga cara berbeda / menggabungkan seluruh repositori.Baru saja memeriksa P4merge sejak saya mendengarnya di artikel blog lain:
Antarmuka yang sangat apik, dan GRATIS! Saya telah menjadi pengguna setia Penggabungan Araxis, tetapi mengingat ini gratis dan mengagumkan, saya mendorong Anda untuk memeriksanya.
sumber
Beyond Compare 3 Pro mendukung penggabungan tiga arah , dan ini merupakan alat penggabungan yang cukup mengesankan. Ini komersial (tetapi layak, IMHO) dan tersedia di Windows, Linux, dan Mac OS X.
Seperti yang ditunjukkan dalam komentar, itu juga tidak mahal.
Catatan: Jika seseorang tidak memiliki set gabungan, yaitu, menggabungkan penanda yang ada di file tujuan, Beyond Compare tidak menawarkan perbandingan / pengeditan file tiga arah. Beyond Compare mengatakan fitur itu ada di daftar mereka .
Catatan: 3-way merge adalah fitur hanya dalam edisi Pro dari Beyond Compare 3
sumber
Meld Diff Viewer
Saya hanya punya pengalaman bagus bekerja dengan Meld. Saya menggunakannya ketika saya harus melakukan penggabungan kode yang berantakan antar cabang. Mudah digunakan dan memiliki antarmuka yang bersih.
Di Ubuntu, instal sesederhana:
sudo apt-get install meld
sumber
vimdiff. Itu bagus. Yang Anda butuhkan hanyalah jendela selebar tiga kaki.
sumber
Source Gear Diff Merge :
Cross-platform, true three-way merge dan sepenuhnya gratis untuk penggunaan komersial atau pribadi.
sumber
Araxis Merge . Ini komersial, tetapi sangat berharga ... Ini tersedia untuk Windows dan Mac OS X.
sumber
Algoritma resolusi konflik Kdiff3 benar-benar mengesankan.
Bahkan ketika subversi mengindikasikan konflik, Kdiff3 menyelesaikannya secara otomatis. Ada versi untuk Windows dan Linux dengan antarmuka yang sama. Dimungkinkan untuk mengintegrasikannya dengan Tortoise dan dengan shell linux Anda.
Itu ada dalam daftar perangkat lunak sumber terbuka favorit saya. Salah satu alat pertama yang saya instal di mesin apa pun.
Anda dapat mengkonfigurasinya sebagai alat diff default di Subversion, Git, Mercurial, dan ClearCase. Ini juga memecahkan hampir semua konflik ClearCase. Di Windows, ia memiliki integrasi yang bagus dengan windows explorer: pilih dua file dan klik kanan untuk membandingkannya, atau klik kanan untuk menyimpan file, lalu pilih yang lain untuk dibandingkan.
File yang digabungkan dapat diedit. Memiliki pintasan keyboard yang apik.
Anda juga dapat menggunakannya membandingkan dan menggabungkan direktori. Lihat:
Fitur lanjutan adalah menggunakan ekspresi reguler untuk mendefinisikan penggabungan otomatis.
Satu-satunya kekesalan saya adalah sedikit sulit untuk dikompilasi jika tidak ada di repositori distro favorit Anda.
sumber
Saya suka Ediff . Muncul built-in dengan GNU Emacs .
Untuk melakukan diff tiga arah, gunakan
ediff-files3
(untuk memilih tiga file) atauediff-buffer3
(untuk memilih tiga buffer yang sudah terbuka). Anda akan mendapatkan layar seperti ini:Perhatikan higlighting perbedaan kata.
Anda dapat menekan
n
ataup
untuk pergi ke diffs berikutnya / sebelumnya, sementaraab
akan menyalin wilayah tersebut dari buffer (yang paling kiri) untuk buffer b (yang di tengah), dan juga untuk kombinasi dua huruf lainnyaa
,b
,c
;rb
akan mengembalikan wilayah dalam buffer b. Tekan?
untuk menu bantuan cepat, atau baca manual bagus tentang penggabungan diff3 di Emacs .sumber
ediff-merge-with-ancestor
) tetapi saya tidak yakin apakah memiliki 3 panel atau 4, dan juga tangkapan layar di atas tidak mencerminkan hal itu.ab
akan menyalin wilayah dari buffer a ke buffer b. Saya kira belum ada versi empat-jendelaediff
. (Saya tahuemerge
menggunakan buffer output khusus sebagai gantinya, tetapiemerge-files-with-ancestor
tidak menunjukkan leluhur, hanya menggunakannya untuk menebak versi yang benar dengan melihat mana yang setuju dengan leluhur tersebut.)Ultracompare . Ini benar-benar baik, menangani file besar (lebih dari 1 GB) dengan baik, tersedia untuk Windows / Mac / Linux, dan komersial, tetapi sangat berharga.
sumber
Diffuse adalah alat penggabungan tiga arah yang mudah digunakan. Ini mendukung semua platform dan sistem kontrol versi yang Anda sebutkan, dan dapat membandingkan lebih dari tiga file secara bersamaan.
sumber
xxdiff jika Anda berada di tanah Linux.
sumber
Kesimpulannya adalah saya menemukan ECMerge sebagai produk komersial yang hebat. http://www.elliecomputing.com/products/merge_overview.asp
Saya juga setuju dengan MrTelly bahwa Ultracompare sangat bagus. Salah satu fitur yang bagus adalah ia akan membandingkan RTF dan Word docs, yang berguna ketika Anda akhirnya memprogram kata-kata dengan sales man dan mereka tidak mengelola dokumen mereka dengan benar.
sumber