Jakie jest najlepsze narzędzie do scalania trójstronnego? [Zamknięte]

272

Subversion, Git, Mercurial i inne obsługują połączenia trójstronne (łączące moje, ich i wersję „podstawową”) oraz obsługują narzędzia graficzne do rozwiązywania konfliktów.

Jakiego narzędzia używasz? Windows, Mac OS X, Linux, darmowy lub komercyjny, nazywasz to.

Oto kilka, z których korzystałem lub o których słyszałem, aby rozpocząć rozmowę:

(Rozumiem, że jest to coś w rodzaju narzędzia Best Diff , ale różni się tym, że wyraźnie koncentruję się na trójstronnych narzędziach do scalania; na przykład WinMerge nie znajduje się na liście).

Dan Fabulich
źródło
4
W rzeczywistości WinMerge ma trójdrożne porównanie za pomocą narzędzi VCS, wystarczy przekazać 3 pliki (lewy, prawy, wynik) jako argumenty do wiersza poleceń i wykonuje to zadanie.
Zilvinas,
3
Trudno powiedzieć, które narzędzie jest najlepsze, ponieważ zależy od czynników subiektywnych. Ale jeśli szukasz funkcji, która wyróżnia różnicę, spróbuj semanticmerge.com
Daniel Peñalba
28
Jak można zamknąć to pytanie jako niekonstruktywne? Ma 182 głosy poparcia, 123 gwiazdki i 11 odpowiedzi, oczywiście wiele osób uważa, że to konstruktywne.
HelloGoodbye,
3
@Shuklaswag Jak to się ma do mojego pytania? Zastanawiałem się, dlaczego zostało zamknięte jako „mało konstruktywne”.
HelloGoodbye,

Odpowiedzi:

167

KDiff3 open source, wieloplatformowy

Ten sam interfejs dla systemów Linux i Windows, bardzo inteligentny algorytm rozwiązywania konfliktów, wyrażenia regularne do automatycznego rozwiązywania konfliktów, integracja z ClearCase, SVN, Git, MS Visual Studio, edytowalny scalony plik, porównanie katalogów

Nawigacja po klawiaturze jest świetna: strzałki Ctrl do nawigacji po różnicach, Ctrl-1, 2, 3 do łączenia.

Zobacz także https://stackoverflow.com/a/2434482/42473

wprowadź opis zdjęcia tutaj

sotto
źródło
10
Więcej zalet KDiff3: ten sam interfejs dla systemu Linux i Windows, bardzo inteligentny algorytm rozwiązywania konfliktów, wyrażenia regularne do automatycznego rozwiązywania konfliktów, integracja z ClearCase, SVN i Git, edytowalny scalony plik, porównanie katalogów.
neves
3
@ThomasS To nieprawda, zobacz inną kdiff3odpowiedź na przykład. kdiff3z radością różnicuje i łączy całe drzewa katalogów i robi to od wielu lat! Niektóre narzędzia (takie jak git) mogą uruchamiać go tylko dla jednego pliku, ale inne narzędzia (takie jak mercurial) z przyjemnością pozwolą ci na trójstronne różnicowanie / scalanie całych repozytoriów.
Mark Booth,
2
KDiff3 jest okropny, gdy zmiany lokalne i inne różnią się liczbą dodanych linii; jeśli lokalnie dodasz linie A, B i C, ale inna zmiana dodała tylko A i C, to KDiff3 odkryje, że A został dodany, a następnie znajdzie B w konflikcie z C, a następnie i tak doda C.
Neil
3
Czy ktoś ma opinię na temat tej odpowiedzi w 2016 roku?
Shadoninja,
4
Nie obsługuje od 2014 r.
Ruslan K.,
106

Właśnie sprawdziłem P4merge, ponieważ słyszałem o tym w innym artykule na blogu:

wprowadź opis zdjęcia tutaj

Bardzo elegancki interfejs i ZA DARMO! Byłem wiernym użytkownikiem scalania Araxis, ale biorąc pod uwagę, że jest to darmowy i niesamowity, zachęcam do sprawdzenia.

Dan Esparza
źródło
11
Jest dostępny dla systemów Windows, Mac, Linux, FreeBSD i Solaris 10
Grant Limberg
36
@ Art: oczywiście możesz edytować wynik scalania w P4Merge. Ciągle to robię!
Sklivvz
9
p4merge nie jest również „darmowy” dla przedsiębiorstw. Licencja jest ograniczona do użytku komercyjnego.
DH4
21
@ DH4 Właśnie otrzymałem wiadomość e-mail z oficjalnego wsparcia Perforce, a P4Merge jest darmowy do użytku komercyjnego (pracuję dla MS, nie ma więcej przedsiębiorczości niż to;))
Ohad Schneider
4
Brak obsługi porównywania folderów w P4merge. Byłby to naprawdę świetny dodatek do P4Merge.
RuntimeException
95

Beyond Compare 3 Pro obsługuje łączenie trójstronne i jest to dość imponujące narzędzie do scalania. Jest komercyjny (ale warto, IMHO) i jest dostępny w systemach Windows, Linux i Mac OS X.

Jak wskazano w komentarzu, jest to również niedrogie.

Wpisz opis zdjęcia tutaj

Uwaga: Jeśli nie ma zestawu scalania, to znaczy znaczników scalania rezydujących w pliku docelowym, Beyond Compare nie oferuje trójstronnego porównywania / edycji plików. Beyond Compare twierdzi, że ta funkcja znajduje się na ich liście .

Uwaga: Scalanie w 3 kierunkach jest funkcją tylko w edycji Pro Beyond Compare 3

Joshua McKinnon
źródło
16
+1 Beyond Compare jest łatwo warte swojej ceny, zwłaszcza jeśli weźmiesz pod uwagę inne funkcje.
jamiei
2
Dobrze, ale nie ma wsparcia dla wybierania folderów
Michael Fitzpatrick
9
Michael, nie jestem pewien, co masz na myśli. Beyond Compare ma świetne wsparcie dla różnych folderów: scootersoftware.com/moreinfo.php .
Bruce Christensen
4
Jest to wyraźnie zaznaczone na ich stronie internetowej - zaktualizowana odpowiedź na wersję Pro stanowi wymóg łączenia 3-kierunkowego
Joshua McKinnon
2
Beyond Compare 4 Pro dodał obsługę Scalanie folderów.
Chris Kennedy
75

Meld Diff Viewer

Miałem tylko dobre doświadczenia ze współpracą z Meld. Używam go, gdy muszę robić niechlujne połączenia kodu między oddziałami. Jest prosty w obsłudze i ma czysty interfejs.

  • Otwarte źródło
  • Obsługiwane systemy Linux, Windows i MacOS
  • Różnicowanie wielu plików
  • Wsparcie dla porównania w trzech kierunkach

W Ubuntu instalacja jest tak prosta jak: sudo apt-get install meld

wprowadź opis zdjęcia tutaj

Eliasz
źródło
3
+1 Meld to zgrabne, czyste i „wystarczające” oprogramowanie.
Trevor Bramble
15
Meld jest wadliwy, a jego wskazówki wizualne wprowadzają w błąd.
aib
6
Meld nawet nie działa poprawnie z git.
slikts,
65
Meld niestety NIE jest trójstronnym narzędziem do scalania (nawet podają to na stronie głównej). Do łączenia w trzy strony potrzebujesz CZTERY okna (plik podstawowy). Ale uwielbiam meld, działa świetnie.
lzap
8
@lzap, właściwie meld był trójstronny, ale był nieudokumentowany i mniej więcej miesiąc temu zauważyłem, że całkowicie usunęli scalanie 3-kierunkowe: is.gd/prKX5d Jeśli trzymasz się wystarczająco starej wersji, nadal jesteś w szczęście.
Magnus
45

vimdiff. Wspaniale. Wszystko czego potrzebujesz to okno o szerokości trzech stóp.

wprowadź opis zdjęcia tutaj

Paul Beckingham
źródło
11
Trwało trochę czasu, aby dowiedzieć się, że możesz zrobić polecenie „gvimdiff -O branch1.txt base.txt branch2.txt merge.txt” i użyj kombinacji klawiszy ctrl + w J, aby przenieść bufor scalania na dół ekranu. Czy tak to wykorzystujesz?
Wim Coenen
Prawie, tyle że używam vima, a nie gvima.
Paul Beckingham
7
głosuj, to tak naprawdę nie rozwiązuje konfliktów, po prostu różni się.
piotr
3
vimdiff ma teraz dobrą obsługę gitów dla łączenia 3-kierunkowego (tj. 4 panele) - vim.wikia.com/wiki/…
Sonia Hamilton
8
@piotr vimdiff rzeczywiście rozwiązuje konflikty. Aby zbudować scalony plik w dolnym okienku, użyj polecenia „diffg <bufferNum>”. Okienkiem scalania buttom jest bufor 1, pozostałe mają 2,3,4 w poprzek. Aby przejść do diffs użyj [c i] c. Jest to nieszablonowa funkcjonalność w debian wheezy 7.7.
ikky
37

Źródło Diff Merge :

Wieloplatformowe, prawdziwe połączenia trójstronne i jest całkowicie darmowy do użytku komercyjnego lub osobistego.

wprowadź opis zdjęcia tutaj

CMS
źródło
1
Korzystam z DiffMerge od lat i podobało mi się. Jednak przeczytałem ten post na blogu, w którym autor patrzył na narzędzia do scalania różnic i zrzucił listę do DiffMerge i P4Merge. Skończył z P4Merge tylko dlatego, że miał ładniejszy interfejs. Właśnie zacząłem używać P4Merge dzisiaj i musiałbym się zgodzić. W szczególności DiffMerge nie wyświetla dobrze zmian - pokazuje je jako usunięcie i wstawienie. Może to być mylące, jeśli istnieje wiele zmian blisko siebie. P4Merge wyświetla to lepiej.
Simon Tewsi
1
Widzę, że diffmerge nie jest bezpłatny , kosztuje 19 USD
erkfel
3
@erkfel, to nieprawda. Rejestracja jest opcjonalna, a oprogramowanie jest bezpłatne: „SourceGear DiffMerge to wielokrotnie nagradzane narzędzie do porównywania i scalania plików, które pomaga profesjonalnym programistom i hobbystom od 2007 roku. SourceGear DiffMerge jest licencjonowany do bezpłatnego korzystania. Jednak rejestracja DiffMerge pomożesz sfinansować rozwój, konserwację i wsparcie nowego produktu. W ramach podziękowań dla naszych zarejestrowanych użytkowników i zachęcania do dodatkowych rejestracji dodaliśmy kilka nowych funkcji w 4.2 ... ”(w tekście programu)
2014 r.
1
Jedną z rzeczy, które uważam za przydatne w DiffMerge, w porównaniu do P4Merge (którego teraz używam do różnicowania i łączenia w git), jest to, że integruje się on z Eksploratorem plików Windows. W szczególności mogę zapamiętać plik w jednym folderze, a następnie porównać zapamiętany plik z innym w innym folderze. Uważam to za przydatne, może raz lub dwa razy w miesiącu, gdzie nie muszę przenosić dwóch plików do tego samego folderu, aby je porównać (np. Skrypty SQL nie będące pod kontrolą źródła).
Simon Tewsi
1
@ SimonTewsi: P4Merge dla komputerów Mac nie wymaga, aby pliki znajdowały się w tym samym folderze. Pozwala przeglądać system plików i wybierać pliki podstawowe, pierwsze i drugie z dowolnego miejsca na komputerze.
Steve Samuels,
32

Araxis Merge . Jest komercyjny, ale jest tego wart ... Jest dostępny dla Windows i Mac OS X.

Wpisz opis zdjęcia tutaj

Dave
źródło
5
Zgadzam się, to najlepsze, jakiego użyłem.
Dan Olson,
1
Moja obserwacja: Jest stosunkowo wolny w przypadku obsługi dużych plików około 5 MB.
Naga Kiran
3
+1 dla Araxis. Jedno z niewielu narzędzi, które gotów byłem zapłacić, aby mieć dobre pieniądze na własny użytek. Wszystko inne jest zagracone, zagmatwane i blednie w porównaniu (gra słów zamierzona).
Dan Esparza
8
Po długim użyciu Araxis moja firma przeszła na KDiff3 z następujących powodów: (1) Kiedy scalanie w Araxis zostanie anulowane, plik nadal jest oznaczany jako rozwiązany w TortoiseHg. (2) Araxis pokazuje mieszaninę rewizji bazy i wynik scalania w okienku „Scal wynik”, co jest często mylące. (3) Z TortoiseHg KDiff3 automatycznie scali bez interakcji użytkownika, jeśli może to zrobić. (4) Algorytm scalania KDiff3 wydaje się po prostu wykonywać lepszą robotę. Jednak nadal używamy Araxis jako naszego narzędzia porównywania :)
Michael Platings
2
Jak wspomniano w komentarzach do innych odpowiedzi, właściwe 3-kierunkowe narzędzie scalania ma 4 panele - podstawowy, lokalny, zdalny i wynikowy . Araxis łączy bazę i wynik, co może prowadzić do problemów.
neonblitzer
27

Algorytm rozwiązywania konfliktów Kdiff3 jest naprawdę imponujący.

Nawet gdy subversion wskazuje na konflikt, Kdiff3 rozwiązuje go automatycznie. Istnieją wersje dla systemu Windows i Linux z tym samym interfejsem. Możliwe jest zintegrowanie go z Tortoise i ze swoją linuksem.

Jest na liście moich ulubionych programów open source. Jedno z pierwszych narzędzi, które instaluję na dowolnej maszynie.

Możesz skonfigurować go jako domyślne narzędzie do porównywania w Subversion, Git, Mercurial i ClearCase. Rozwiązuje również prawie wszystkie konflikty ClearCase. W systemie Windows ma dobrą integrację z Eksploratorem Windows: wybierz dwa pliki i kliknij prawym przyciskiem myszy, aby je porównać, lub kliknij prawym przyciskiem myszy, aby zapisać plik do później, a następnie wybierz inny do porównania.

Scalony plik można edytować. Ma zręczne skróty klawiaturowe.

Możesz także użyć go do porównania i scalenia katalogów. Widzieć: Kdiff3 Porównywanie katalogów

Zaawansowaną funkcją jest używanie wyrażeń regularnych do definiowania automatycznych połączeń.

Moją jedyną irytacją jest to, że trudno jest go skompilować, jeśli nie ma go w twoim ulubionym repozytorium dystrybucji.

neves
źródło
3
Zgadzam się co do algorytmu scalania. Jest niesamowicie wyrafinowany i dziwnie wydaje się „wiedzieć”, co chcesz robić w sposób, którego inne narzędzia nie mogą. Regularnie miażdży diff3 i Subversion (blarg), a nawet może być pomocny przy scalaniu Git.
kevinarpe
gdzie są skróty klawiaturowe, aby przejść dalej i wybrać / b / c?
mylord
@mylord: użyj małego opóźnienia Auto-Advance i skrótów Ctrl-1/2/3, aby wybrać A / B / C dla wielu konfliktów.
neves,
czy coś zastąpiło dla ciebie KDiff3? Duży użytkownik, ale widzę, czy obecnie istnieje lepsza alternatywa
chrispepper1989
1
@ chrispepper1989, nadal używam KDiff3 w Git dzisiaj. Nigdy nie znalazłem aplikacji do łączenia w 3 kierunkach, która byłaby znacznie lepsza niż KDiff3. P4Merge ma bardziej nowoczesny interfejs, ale kiedy go przetestowałem, nie mogłeś edytować scalonego pliku (myślę, że możesz to zrobić teraz).
neves
13

Kocham Ediffa . Jest wbudowany w GNU Emacs .

Aby wykonać różnicę w trzech kierunkach, użyj ediff-files3(do wyboru trzech plików) lub ediff-buffer3(do wyboru trzech już otwartych buforów). Otrzymasz ekran wyglądający tak:

trójdrożna różnica w emacs

Zwróć uwagę na wyróżnienie różnicy słów.

Można uderzyć nlub p, aby przejść do następnego / poprzedniego dyferencjału, natomiast abskopiuje ten region od buforu A (skrajnej lewej jeden) do buforu B (środkowy) i podobnie dla innych kombinacji dwu literowym a, b, c; rbprzywróci region w buforze b. Hit ?dla szybkiego menu pomocy, albo przeczytać instrukcję dobrze na wyjściowego diff3 wtopienie się w Emacs .

jcrossley3
źródło
6
O ile kocham Ediffa, widzę tylko dwa bufory powyżej ... Scalanie 3-kierunkowe powinno mieć 3 lub 4 okna: trzy są łączone (lokalna, zdalna i ich wspólna baza przodków), a końcowy wynik scalania . Tam nie wydaje się być 3-way seryjnej w ediff (zwany ediff-merge-with-ancestor), ale nie jestem pewien, czy to ma 3 lub 4 szyby, a także zrzut ekranu powyżej nie odzwierciedlają.
ShreevatsaR
Edytowany pokazać trójdrożny diff @ShreevatsaR
unhammer
@unhammer Dzięki, to jest lepsze, ale wciąż pokazuje tylko 3 okna, więc nie jest jasne, że to prawdziwy 3-drożny diff (który miałby 4 okna; zobacz kdiff3 i inne przykłady). Jeśli to, co pokazano na zrzucie ekranu, łączą się trzy rzeczy, gdzie jest wynik?
ShreevatsaR
Niszczycie modyfikując jeden (lub więcej!) Bufor. Dlatego wspomniałem, że abskopiuje region z bufora a do bufora b. Nie wydaje mi się, żeby istniała wersja z czterema oknami ediff. (Wiem, że emergezamiast tego używa dedykowanego bufora wyjściowego, ale emerge-files-with-ancestornie pokazuje przodka, używa go tylko do odgadnięcia właściwej wersji , sprawdzając, który z nich zgadza się z tym.)
unhammer
11

Ultracompare . Jest naprawdę dobry, dobrze radzi sobie z dużymi plikami (ponad 1 GB), jest dostępny na Windows / Mac / Linux i jest komercyjny, ale warto.

Zrzut ekranu UltraCompare Professional w systemie Windows

MrTelly
źródło
Nie wiem, jak ustawić obsługę 3-kierunkowego łączenia ... Czy może wyświetlać plik podstawowy w środku, 2 zmienione pliki po lewej i prawej stronie, więc mogę zobaczyć, co zostało zmienione w obu plikach na podstawie bazy plik i czy scalony wynik 2 zmienionych plików jest na dole? Używam UltraCompare 17.0
Ricky
1
Odrobina googlinga znalazła ten ultraedit.com/support/tutorials-power-tips/ultracompare/… - mówi o łączeniu w 3 kierunkach podczas zaawansowanego scalania w kroku 6.
MrTelly,
11

Diffuse to łatwe w użyciu narzędzie do łączenia w trzy strony. Obsługuje wszystkie wymienione platformy i systemy kontroli wersji i może porównywać więcej niż trzy pliki jednocześnie.

wprowadź opis zdjęcia tutaj

Jordan Ryan Moore
źródło
2
I obsługuje nawet porównywanie plików N w tym samym czasie! Jest to przydatne, gdy trzeba porównać pliki konfiguracyjne z wielu jednorodnych aplikacji.
Pius Raeder,
Używam Diffuse do moich ponad trzech
porównań
6

xxdiff, jeśli jesteś w krainie Linuksa.

Wpisz opis zdjęcia tutaj

Mark Harrison
źródło
4

Podsumowując, uważam, że ECMerge jest świetnym, choć komercyjnym produktem. http://www.elliecomputing.com/products/merge_overview.asp

wprowadź opis zdjęcia tutaj

Zgadzam się również z MrTelly, że Ultracompare jest bardzo dobra. Jedną fajną cechą jest to, że porównuje dokumenty RTF i Word, co jest przydatne, gdy kończysz programowanie w słowach ze sprzedawcami i nie zarządzają oni swoimi dokumentami poprawnie.

Steve Midgley
źródło
Pierwszy link nie działa, zwraca błąd 500. Jeśli zasób został przeniesiony, dostosuj adres URL.
Sergey P. aka lazur
@ SergeyP.akaazure - przepraszam za to. Mój blog jest zlikwidowany - usunąłem link ..
Steve Midgley,