En iyi üç yollu birleştirme aracı nedir? [kapalı]


272

Subversion, Git, Mercurial ve diğerleri üç yönlü birleşmeleri (benimki, onlarınki ve "temel" revizyonu birleştirerek) destekliyor ve çatışmaları çözmek için grafik araçları destekliyor.

Hangi aracı kullanıyorsunuz? Windows, Mac OS X, Linux, ücretsiz veya ticari, adını siz koyun.

İşte sadece konuşmayı başlatmak için kullandığım veya duyduğum birkaç şey:

(Bunun En İyi Fark Aracı gibi olduğunu biliyorum, ancak açıkça üç yönlü birleştirme araçlarına odaklandığımdan farklı; WinMerge listenin dışında.)



4
Aslında WinMerge , VCS araçlarıyla 3 yollu karşılaştırmaya sahip, sadece 3 dosyayı (sol, sağ, sonuç) komut satırına argüman olarak iletmeniz ve işi yapması gerekiyor.
Zilvinas

3
En iyi birleştirme aracının ne olduğunu söylemek zordur, çünkü öznel faktörlere bağlıdır. Ancak farkı belirleyen bir özellik arıyorsanız, semanticmerge.com'u
Daniel Peñalba

28
Bu soru yapıcı değil olarak nasıl kapatılabilir? Açıkçası çok insan o düşünmek, 182 upvotes, 123 yıldızları ve 11 cevap vermektedir olduğu yapıcı.
HelloGoodbye

3
@Shuklaswag Bu, sorumla nasıl ilgili? Neden "yapıcı değil" olarak kapatıldığını merak ettim.
HelloGoodbye

Yanıtlar:


167

KDiff3 açık kaynak, çapraz platform

Linux ve Windows için aynı arayüz, çakışmaları çözmek için çok akıllı algoritma, çakışmaları otomatik olarak çözmek için düzenli ifadeler, ClearCase, SVN, Git, MS Visual Studio, düzenlenebilir birleştirilmiş dosya, dizinleri karşılaştırın

Klavye-navigasyonu harika: farkları gezinmek için ctrl-okları, birleştirme yapmak için ctrl-1, 2, 3.

Ayrıca bkz. Https://stackoverflow.com/a/2434482/42473

resim açıklamasını buraya girin


10
KDiff3'ün diğer avantajları: Linux ve Windows için aynı arayüz, çakışmaları çözmek için çok akıllı algoritma, otomatik olarak çatışmaları çözmek için düzenli ifadeler, ClearCase, SVN ve Git ile entegre, düzenlenebilir birleştirilmiş dosya, dizinleri karşılaştırın.
neves

3
@ThomasS Bu doğru değil, örnek için diğer kdiff3cevaba bakınız . kdiff3tüm dizin ağaçlarını mutlu bir şekilde farklılaştırır ve birleştirir ve uzun yıllar boyunca yaptı! Bazı araçlar (örneğin git) yalnızca dosya başına başlatabilir, ancak diğer araçlar (cıva gibi) tüm depoları üç yönlü olarak ayırmanıza / birleştirmenize izin verir.
Mark Booth

2
KDiff3, eklenen satırların sayısında yerel ve diğer değişiklikler farklı olduğunda korkunçtur; yerel olarak A, B ve C satırları eklerseniz, ancak diğer değişiklik yalnızca A ve C eklediyse, KDiff3, A'nın eklendiğini, ardından C ile B çakışmalarını bulur ve yine de C'yi ekler.
Neil

3
2016 yılında bu cevap hakkında bir fikri olan var mı?
Shadoninja

4
2014'ten beri desteklenmiyor
Ruslan

106

Başka bir blog makalesinde duyduğumdan beri P4merge'i kontrol ettim :

resim açıklamasını buraya girin

Çok kaygan bir arayüz ve ÜCRETSİZ! Sadık bir Araxis Merge kullanıcısıydım, ancak bunun ücretsiz ve harika olduğunu düşünürsek, kontrol etmenizi öneririm.


11
Windows, Mac, Linux, FreeBSD ve Solaris 10 için kullanılabilir
Grant Limberg

36
@Art: elbette P4Merge'de birleştirme sonucunu düzenleyebilirsiniz. Onu her zaman yaparım!
Sklivvz

9
p4merge ayrıca işletme için "ücretsiz" değildir. Lisans ticari kullanım için sınırlandırılmıştır.
DH4

21
@ DH4 Resmi Perforce desteğinden yeni bir e-posta aldım ve P4Merge ticari kullanım için ücretsiz (MS için çalışıyorum, bundan daha fazla işletme almıyor;))
Ohad Schneider

4
P4merge'de klasör karşılaştırma desteği yok. P4Merge için gerçekten harika bir ek olurdu.
RuntimeException

95

Beyond Compare 3 Pro üç yönlü birleştirmeyi destekler ve oldukça etkileyici bir birleştirme aracıdır. Ticari (ancak buna değer, IMHO) ve Windows, Linux ve Mac OS X'te kullanılabilir.

Bir yorumda belirtildiği gibi, aynı zamanda ucuz.

Resim açıklamasını buraya girin

Not: Bir birleştirme kümesi yoksa, yani hedef dosyada yerleşik birleştirme işaretleyicileri yoksa, Ötesinin Karşılaştırması üç yönlü dosya karşılaştırma / düzenleme sunmaz. Karşılaştırmanın ötesinde , bu özelliğin listelerinde olduğunu söylüyor .

Not: 3 yönlü birleştirme, yalnızca Beyond Compare 3'ün Pro sürümündeki bir özelliktir


16
+1 Beyond Compare, özellikle de diğer özellikleri düşündüğünüzde, fiyatına değer.
jamiei

2
İyi, ancak klasör seçimi için destek yok
Michael Fitzpatrick

9
Michael, ne demek istediğinden emin değilim. Beyond Compare farklı klasörler için büyük desteğe sahiptir: scootersoftware.com/moreinfo.php .
Bruce Christensen

4
Web sitelerinde açıkça belirtilmiştir - Pro sürümüne güncellenmiş cevap, 3 yönlü birleştirme için bir gerekliliktir
Joshua McKinnon

2
Beyond Compare 4 Pro Klasör Birleştirme desteği ekledi.
Chris Kennedy

75

Meld Diff Görüntüleyici

Meld ile çalışırken sadece iyi deneyimler yaşadım. Dallar arasında dağınık kod birleştirme yapmak zorunda olduğunda kullanıyorum. Kullanımı basit ve temiz bir arayüze sahip.

  • Açık kaynak
  • Linux, Windows ve MacOS Desteği
  • Çoklu Dosya Farkı
  • Üçlü Karşılaştırma Desteği

Ubuntu'da kurulum aşağıdaki kadar basittir: sudo apt-get install meld

resim açıklamasını buraya girin


3
+1 Meld kaygan, temiz, "yeterli" bir yazılımdır.
Trevor Bramble

15
Meld kusurludur ve görsel ipuçları yanıltıcıdır.
aib

6
Meld git ile düzgün çalışmaz.
slikts

65
Meld, ne yazık ki, üç yönlü birleştirme aracı DEĞİLDİR (hatta ana sayfada belirtiyorlar). Üç yönlü birleştirme için DÖRT pencereye (temel dosya) ihtiyacınız vardır. Ama ben meld seviyorum, harika çalışıyor.
lzap

8
@lzap, aslında zihin birleştirme oldu üç yollu, ama belgelenmemiş ve ben onlar tamamen 3 yollu birleştirme kaldırdık fark önce bir ay kadar: is.gd/prKX5d sen hala içindedir eski yeterince sürümü ile yapışırsa şans olsa.
Magnus

45

vimdiff. Bu harika. Tek ihtiyacınız olan üç metre genişliğinde bir pencere.

resim açıklamasını buraya girin


11
Birleştirme arabelleğini ekranın altına taşımak için "gvimdiff -O branch1.txt base.txt branch2.txt merge.txt" ve ctrl + w J tuşlarını kullanabileceğinizi anlamak için biraz zaman ayırın. Bu şekilde mi kullanıyorsunuz?
Wim Coenen

Oldukça fazla, ben vim kullanıyorum, gvim değil.
Paul Beckingham

7
oylar, çatışmaları gerçekten çözmez, sadece farktır.
piotr

3
vimdiff şimdi 3 yönlü birleştirme (yani 4 bölme) için güzel git işleme var - vim.wikia.com/wiki/…
Sonia Hamilton

8
@piotr vimdiff çatışmaları gerçekten çözer. Birleştirilen dosyayı alt bölmede oluşturmak için "diffg <bufferNum>" komutunu kullanın. Buttom birleştirme bölmesi tampon 1'dir, diğerleri üstte 2,3,4'tür. Farklara atlamak için [c ve] c tuşlarını kullanın. Bu debian wheezy 7.7 üzerinde kullanıma hazırdır.
ikky

37

Kaynak Dişli Farkı Birleştirme :

Platformlar arası, gerçek üç yönlü birleşmeler ve ticari veya kişisel kullanım için tamamen ücretsizdir.

resim açıklamasını buraya girin


1
Yıllardır DiffMerge kullandım ve beğendim. Ancak, yazarın diff-merge araçlarına baktığı ve listeyi DiffMerge ve P4Merge'e bıraktığı bu blog gönderisini okudum. P4Merge ile devam etti, çünkü daha hoş bir arayüze sahipti. Bugün P4Merge kullanmaya yeni başladım ve hemfikirim. Özellikle, DiffMerge değişiklikleri iyi göstermez - silme ve ekleme olarak gösterir. Birbirine yakın birçok değişiklik varsa bu kafa karıştırıcı olabilir. P4Merge daha iyi görüntüler.
Simon Tewsi


3
@erkfel, Bu yanlış. Kayıt isteğe bağlıdır ve yazılım ücretsizdir: "SourceGear DiffMerge, 2007'den beri profesyonel geliştiricilere ve hobilere yardımcı olan ödüllü bir dosya dif ve birleştirme aracıdır. SourceGear DiffMerge, ücretsiz olarak kullanım için lisanslanmıştır. Eğer fon yeni ürün geliştirme, bakım ve destek yardımcı olacak bizim kayıtlı kullanıcıların teşekkür ve ek kayıt teşvik etmenin bir yolu, biz 4.2 bazı yeni özellikler ekledik gelince ..."(program metninde).
Muhd

1
DiffMerge'de P4Merge ile karşılaştırıldığında yararlı bulduğum bir şey (şimdi git ve ayrıştırmak için kullandığım), Windows Dosya Gezgini ile entegre olması. Özellikle, bir klasördeki bir dosyayı hatırlayabilir, ardından hatırlanan dosyayı başka bir klasördeki başka bir dosyayla karşılaştırabilirim. Bu yararlı olabilir belki bir veya iki kez ayda, ben onları karşılaştırmak için aynı klasöre iki dosya taşımak zorunda değilsiniz (örneğin kaynak denetiminde olmayan SQL komut dosyaları).
Simon Tewsi

1
@SimonTewsi: Mac için P4Merge, dosyaların aynı klasörde olmasını gerektirmez. Dosya sistemine göz atmanıza ve bilgisayarın herhangi bir yerinden temel, birinci ve ikinci dosyaları seçmenize izin verir.
Steve Samuels

32

Araxis Birleştirme . Ticari, ama buna değer ... Windows ve Mac OS X için kullanılabilir.

Resim açıklamasını buraya girin


5
Kabul ediyorum, kullandığım en iyisi.
Dan Olson

1
Benim gözlemim: 5MB civarında büyük dosyaları işlerken nispeten yavaş.
Naga Kiran

3
Araxis için +1. Kişisel kullanım için iyi para ödemeye istekli olduğum birkaç araçtan biri. Diğer her şey karşılaştırmalı olarak karmaşık, kafa karıştırıcı ve soluktur (pun amaçlı).
Dan Esparza

8
Araxis'i uzun süre kullandıktan sonra şirketim aşağıdaki nedenlerle KDiff3'e geçti: (1) Araxis'te birleştirme iptal edildiğinde, dosya TortoiseHg'de hala çözülmüş olarak işaretleniyor. (2) Araxis, taban revizyonu ve birleştirme sonucunun, sıklıkla kafa karıştırıcı olan "Birleştirme Sonucu" bölmesinde bir karışımını gösterir. (3) TortoiseHg'den KDiff3, kullanıcı etkileşimi olmadan otomatik olarak birleşir. (4) KDiff3'ün birleştirme algoritması daha iyi bir iş çıkarmış gibi görünüyor. Ancak yine de Araxis'i karşılaştırma aracımız olarak kullanıyoruz :)
Michael Platings

2
Diğer cevapların yorumlarında belirtildiği gibi, uygun bir 3 yollu birleştirme aracının 4 paneli vardır - taban, yerel, uzak ve sonuç . Araxis tabanı ve sonucu birleştirir, bu da sorunlara yol açabilir.
Ocak'ta

27

Kdiff3 çakışma çözümleme algoritması gerçekten etkileyici.

Subversiyon bir çelişki gösterdiğinde bile, Kdiff3 otomatik olarak çözer. Aynı arayüze sahip Windows ve Linux sürümleri vardır. Tortoise ve linux kabuğunuzla entegre etmek mümkündür.

Favori açık kaynak yazılımlarım listesinde. Herhangi bir makineye kurduğum ilk araçlardan biri.

Subversion, Git, Mercurial ve ClearCase'de varsayılan fark aracı olarak yapılandırabilirsiniz. Ayrıca neredeyse tüm ClearCase çakışmalarını çözer. Windows'da, Windows Gezgini ile güzel bir entegrasyonu vardır: iki dosyayı seçin ve karşılaştırmak için sağ tıklayın veya bir dosyayı 'daha sonraya kaydet' için sağ tıklayın ve ardından karşılaştırılacak başka bir dosya seçin.

Birleştirilen dosya düzenlenebilir. Kaygan klavye kısayolları var.

Ayrıca dizinleri karşılaştırmak ve birleştirmek için de kullanabilirsiniz. Görmek: Kdiff3 Dizinleri karşılaştırma

Gelişmiş bir özellik, otomatik birleştirmeleri tanımlamak için düzenli ifadeler kullanmaktır.

Tek rahatsızlığım, en sevdiğiniz dağıtım deposunda yoksa derlemenin biraz zor olmasıdır.


3
Birleştirme algoritması hakkında hemfikirim. İnanılmaz derecede sofistike ve garip bir şekilde diğer araçların yapamayacağı şekilde ne yapmak istediğinizi "biliyor" gibi görünüyor. Dif3 ve Subversion'u (blarg) düzenli olarak ezir ve hatta Git birleştirme ile bile yardımcı olabilir.
kevinarpe

sonraki bölüme gitmek ve a / b / c seçmek için klavye kısayolları nerede?
mylord

@ mylord: küçük bir Otomatik İlerleme gecikmesi ve birçok çatışma için A / B / C'yi seçmek için Ctrl-1/2/3 kısayollarını kullanın.
neves

sizin için KDiff3'ün yerini alan bir şey var mı? Büyük kullanıcı, ama kendimi bu günlerde daha iyi bir alternatif olup olmadığını görmek
chrispepper1989

1
@ chrispepper1989, hala Git'de KDiff3 kullanıyorum. KDiff3'ten önemli ölçüde daha iyi 3 yönlü birleştirme uygulaması bulamadım. P4Merge'in daha modern bir arayüzü var, ancak test ettiğimde birleştirilmiş dosyayı düzenleyemediniz (sanırım şimdi yapabilirsiniz).
neves

13

Ediff'i seviyorum . GNU Emacs ile birlikte gelir .

Üç yollu fark yapmak için ediff-files3(üç dosya seçmek için) veya ediff-buffer3(önceden açık olan üç arabelleği seçmek için ) tuşunu kullanın . Şöyle bir ekran alacaksınız:

emac'lerde üç yönlü fark

Kelime farkı higlighting dikkat edin.

Sen vurabilir nya pda, bir sonraki / önceki fark dosyaları gitmek için abbir (en soldaki biri) tampon bölgeyi kopyalar b (orta bir) tampon ve benzer diğer iki harfli kombinasyonları için için a, b, c; rbtampondaki bölgeyi geri yükler b. İsabet ?hızlı bir yardım menüsü için veya Emacs diff3'ün birleştiği ince kılavuzu okuyunuz .


6
Ediff'i sevdiğim kadar yukarıda sadece iki tampon görüyorum ... 3 yönlü birleştirme 3 veya 4 pencereye sahip olmalı: üçünün birleştirilmesi (yerel, uzak ve ortak ata tabanı) ve son birleştirme çıktısı . Ediff'te (çağrılmış ) 3 yönlü birleştirme var gibi görünüyor, ediff-merge-with-ancestorancak 3 bölmesi veya 4 olup olmadığından emin değilim ve ayrıca yukarıdaki ekran görüntüsü bunu yansıtmıyor.
ShreevatsaR

Üç yollu fark göstermek için düzenlendi @ShreevatsaR
unhammer

@unhammer Teşekkürler bu daha iyi, ama yine de sadece 3 pencere gösteriyor, bu yüzden gerçek bir 3 yönlü fark var (4 pencereye sahip olacak; kdiff3 ve diğer örneklere bakın). Ekran görüntüsünde gösterilen üç şey birleştiriliyorsa, çıktı nerede?
ShreevatsaR

Tamponlardan birini (veya daha fazlasını!) Yıkıcı bir şekilde değiştirirsiniz. Bu yüzden abbölgeyi tampondan tampona b kopyalayacağından bahsettim . ediffHenüz dört pencereli bir sürümü olduğunu sanmıyorum . (Bildiğim emergeözel bir çıkış yerine tampon, ancak kullanımları emerge-files-with-ancestorvermez göstermek sadece, atası doğru sürümünü tahmin için kullanır tek atası kabul eder görme yoluyla.)
unhammer

11

Ultra karşılaştırma . Gerçekten iyi, büyük dosyaları (1 GB'den fazla) iyi işliyor, Windows / Mac / Linux için kullanılabilir ve ticari, ancak buna değer.

Windows'ta UltraCompare Professional'ın ekran görüntüsü


3 yönlü birleştirmeyi destekleyecek şekilde nasıl ayarlayacağımı bilmiyorum ... Ortada bir temel dosya, solda ve sağda 2 değiştirilmiş dosya görüntüleyebilir mi, böylece her iki dosyada da neye göre değiştiğini görebiliyorum dosya ve altta 2 değişiklik dosya birleştirilmiş sonucu var mı? UltraCompare 17.0 kullanıyorum
Ricky

1
Biraz googling bu ultraedit.com/support/tutorials-power-tips/ultracompare/… 'ı buldu - 6. adımdaki birleştirme işleminde 3 yol birleştirme hakkında konuşuyor.
MrTelly

11

Diffüz , kullanımı kolay üç yollu birleştirme aracıdır. Bahsettiğiniz tüm platformları ve sürüm kontrol sistemlerini destekler ve aynı anda üçten fazla dosyayı karşılaştırabilir.

resim açıklamasını buraya girin


2
Ve N dosyalarını aynı anda karşılaştırmayı bile destekler! Bu, birçok homojen uygulamadaki yapılandırma dosyalarını karşılaştırmanız gerektiğinde kullanışlıdır.
Pius Raeder



4

Özet şu ki, ECMerge'yi harika bir ticari ürün olarak buldum. http://www.elliecomputing.com/products/merge_overview.asp

resim açıklamasını buraya girin

Ayrıca MrTelly ile Ultracompare'in çok iyi olduğunu kabul ediyorum. Güzel bir özellik de, RTF ve Word belgelerini karşılaştıracak olması, bu da satış elemanlarıyla kelime programlamayı bitirdiğinizde kullanışlıdır ve belgelerini doğru yönetmez.


İlk bağlantı çalışmıyor, 500 hatası döndürüyor. Kaynak taşındıysa, lütfen URL'yi ayarlayın.
Sergey P. aka azure

@ SergeyP.akaazure - bunun için üzgünüm. Blogum geçersiz - Bağlantıyı kaldırdım ..
Steve Midgley
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.