2010-07-22 14 views
5

Widzę opcję określania trzech plików (lewy, prawy i przodek), ale nie wydaje się być możliwe, aby faktycznie wyświetlał przodka jako.Jak zrobić 3-way scalania w FileMerge?

enter image description here

dolny panel przedstawia wyniku połączenia. Wolałbym zobaczyć, jaka była oryginalna treść, więc mogłem zrozumieć kontekst dla lewej i prawej strony konfliktu. czy to możliwe? FileMerge ma okropną dokumentację pomocy.

Odpowiedz

4

Według mojej wiedzy nie jest to możliwe przy filemerge.

Paid (ale bardzo dobrze) aplikacja: http://www.deltopia.com/

Open source: http://sourcegear.com/diffmerge/

+0

Deltopia wygląda ładnie. Dzięki. –

+2

Perforce's P4Merge to darmowy i wspaniały 3-way diff/merge narzędzie i jest dostępny dla OSX, Linux i Windows – Clafou

+0

Ponieważ jest to zaakceptowana odpowiedź i ludzie podłączają swoje narzędzia fav, wspomnę tylko kdiff3 (również wymienione w odpowiedzi poniżej), która jest bezpłatna i łączy się bardzo dobrze. Jest dość brzydki (na OSX), ale przyjazny dla klawiatury i łatwy w użyciu. – LOAS

5

Wygląda jak w wersji 2.5 zostały one ostatecznie dodaje tę funkcję. „Przodek” teraz faktycznie oznacza „Ancestor” i jest tam oddzielny „scalić” opcja

Z wiersza poleceń można zrobić coś takiego:

$ opendiff mine theirs --ancestor base 

Gdzie „moje” jest moja wersja pliku , "ich" jest wersją, z którą próbuję się połączyć, a "podstawa" jest wspólnym przodkiem "kopalni" i "ich"

To polecenie otworzy scalenie plików i pokaże przodka u dołu (gdzie scalenie jest w moim przykładzie z 2010 r.)

Niestety, to nie jest możliwe można użyć opcji --merge wraz z opcją --ancestor. Nie można wyświetlić scalania trójstronnego i używać scalania plików do rozwiązywania konfliktów w tym samym czasie.

Zaczynam używać File Merge do przeglądania i zrozumienia konfliktu, a następnie jak zwykle edytuj znaczniki konfliktu w edytorze tekstu. (westchnienie ...)

+0

Używam FileMerge 2.5 ... opcja Ancestor istnieje, ale na dole nie pojawia się plik przodka ...Jest tylko produkt scalony. Dowolny pomysł? – MirkoBanchi

+0

Wygląda na to, że się myliłem. Zobacz odpowiedź od Jake'a Griffina. –

3

@mehaase: To nie jest dokładnie poprawne. Oto dokumentacja nowej opcji przodka z FileMerge Pomoc:

Sometimes, you need to compare two versions of a file that have been modified 
independently. For example, say two people branch a file; that is, they make 
copies of a file and modify it. In this case, specify an ancestor file, which 
is the common ancestor of the modified files. 

The ancestor file lets FileMerge choose when to take changes from the left 
file or the right file. For example, say the left file and the right file 
contain a different version of line 33. If line 33 in the ancestor matches 
line 33 in the left file, you know the change happened after the two files 
branched off, and FileMerge prefers the newer version of line 33 in the right 
file. If line 33 is different among the three files, you know that the files’ 
editors edited the lines separately. FileMerge displays that difference with 
a red border and asks you to choose with edit to use. 

Więc przodek nie jest nadal wyświetlany, ale pomaga funkcji scalania, aby trochę bardziej świadome decyzje, gdy zdecyduje się wybrać lewy lub prawy strony domyślnie.

+0

Wow, doskonały punkt. Nie wiem, o czym myślałem, kiedy opublikowałem odpowiedź. Po prostu wypróbowałem to w wersji 2.7 i masz rację, na dole widać wynik scalenia, a nie przodka! FileMerge jest nadal bezużyteczny dla programistów. Zastanawiam się, czego używają programiści Apple'a. –

2

Zdaję sobie sprawę, ta odpowiedź technicznie nie jest odpowiedź na pytanie, jak to zrobić z FileMerge, ale używam KDiff3 (dostępny dla systemów Windows, Mac i * nix) i to widać stacji bazowej/przodka, a także w lewo i w prawo, plus wynik/wynik, dla scalenia w 3 kierunkach. (http://kdiff3.sourceforge.net/)

To nie jest ładny interfejs użytkownika, ale (IMHO) jest dość prosty w użyciu i działa dobrze. I to jest open source. :-)

Powiązane problemy