różnica3
Deweloperzy | Laboratoria AT&T Bell |
---|---|
Pierwsze wydanie | styczeń 1979 |
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
- Formalne dochodzenie w sprawie Diff3
- Podręcznik GNU diffutils, „Porównywanie trzech plików” i „Łączenie ze wspólnego przodka”