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).



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


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.


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


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


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


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


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


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.


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 .


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


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


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ń


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.


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,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.