różnica3

różnica3
Deweloperzy Laboratoria AT&T Bell
Pierwsze wydanie styczeń 1979 ; 44 lata temu ( 1979-01 )
System operacyjny Uniksowe i uniksopodobne
Typ Komenda

diff3 to uniksowe narzędzie do porównywania trzech plików i pokazywania wszelkich różnic między nimi. diff3 może również scalać pliki, implementując trójstronne scalanie .

Historia i wdrożenia

diff3 pierwotnie pojawił się w wersji 7 Unix z 1979 roku. Bardzo podobna wersja została znaleziona w Berkeley Software Distribution (BSD) i została odziedziczona przez OpenBSD i prawdopodobnie Solaris .

W większości nowoczesnych systemów uniksopodobnych, nawet wywodzących się z BSD, takich jak FreeBSD i NetBSD, dostarczany plik diff3 jest wersją GNU w pliku diffutils (dawniej GNU Tools ). Ta wersja ma możliwość samodzielnego scalania plików bez polegania na ed . Wewnętrznie wywołuje diff w celu wykonania porównania, ale może też użyć dowolnego innego kompatybilnego narzędzia.

Polecenie jest dostępne jako osobny pakiet dla systemu Microsoft Windows jako część kolekcji UnxUtils natywnych portów Win32 wspólnych narzędzi typu GNU Unix.

„Diff3” stało się również ogólną nazwą algorytmu trójdrożnego łączenia, w szczególności algorytmu opartego na godzeniu dwóch różnych różnic pochodzących z pierwszego źródła.

Połączenie od wspólnego przodka

Gdy dwie osoby dokonały zmian w kopiach tego samego pliku, diff3 może wygenerować scalone dane wyjściowe zawierające oba zestawy zmian wraz z ostrzeżeniami o konfliktach. diff3 może łączyć trzy lub więcej zestawów zmian w pliku, łącząc jednocześnie dwa zestawy zmian.

diff3 może zawierać zmiany z dwóch zmodyfikowanych wersji we wspólnej poprzedniej wersji. Umożliwia to użytkownikom łączenie zestawów zmian reprezentowanych przez dwa nowsze pliki. Można to włączyć za pomocą następującego polecenia: diff3 mine old yours .

starszego pliku od twojego pliku i dodawanie wyniku do pliku kopalni lub łączenie w moim pliku zmian, które stałyby się starsze w twoim . To scalanie jest dobrze zdefiniowane, o ile moje i starsze pasują do siebie w sąsiedztwie każdej takiej zmiany. To nie jest prawdą, gdy wszystkie trzy pliki wejściowe różnią się lub gdy różnią się tylko starsze ; to jest konflikt. Gdy wszystkie trzy pliki wejściowe różnią się, konflikt polega na nakładaniu się.

diff3 ma kilka metod radzenia sobie z nakładaniem się i konfliktami. Może pomijać nakładające się lub konflikty, wybierać tylko nakładające się lub oznaczać konflikty specjalnymi <<<<<<< i >>>>>>> liniami.

diff3 może wyprowadzić wyniki scalania jako skrypt ed , który można zastosować do pierwszego pliku, aby uzyskać scalone dane wyjściowe. Jednak bezpośrednie generowanie scalonych danych wyjściowych omija niektóre problemy z ed.

Zobacz też

Linki zewnętrzne