Porównanie narzędzi do porównywania plików
W tym artykule porównano narzędzia oprogramowania komputerowego , które służą do porównywania plików różnych typów. Typy plików, do których adresowane są poszczególne aplikacje do porównywania plików, różnią się, ale mogą zawierać tekst, symbole, obrazy, dźwięk lub wideo. Ta kategoria narzędzi programowych jest często nazywana „porównywaniem plików” lub „narzędziem porównywania”, ale w rzeczywistości są to równoważne terminy — gdzie termin „różnica” jest częściej kojarzony z diff
narzędziem Unix .
Typowym podstawowym przypadkiem jest porównanie jednego pliku z drugim. Jednak może również obejmować porównania między dwiema populacjami plików, na przykład w przypadku porównywania katalogów lub folderów w ramach zarządzania plikami . Może to na przykład służyć do wykrywania problemów z uszkodzonymi wersjami kopii zapasowych kolekcji plików... lub sprawdzania, czy pakiet plików jest zgodny ze standardami przed opublikowaniem.
Należy pamiętać, że porównania należy przeprowadzać między plikami tego samego typu. Oznacza to, że pliku tekstowego nie można porównać do obrazu zawierającego tekst, chyba że najpierw zostanie wykonany proces optycznego czytnika znaków (OCR) w celu wyodrębnienia tekstu. Podobnie tekstu nie można porównywać ze słowami mówionymi, chyba że słowa mówione zostaną najpierw przepisane na tekst. Ponadto tekstu w jednym języku nie można porównywać z tekstem w innym, chyba że jeden z nich zostanie przetłumaczony na język innego.
Krytyczną kwestią jest to, w jaki sposób dwa porównywane pliki muszą być zasadniczo podobne, a zatem nie mogą radykalnie się różnić. Nawet różne rewizje tego samego dokumentu — jeśli jest wiele zmian spowodowanych dodawaniem, usuwaniem lub przenoszeniem treści — mogą bardzo utrudniać interpretację porównań zmian w plikach. Sugeruje to częste zapisywanie wersji krytycznego dokumentu, aby ułatwić porównywanie plików.
Narzędzie do porównywania plików „diff” jest bardzo ważnym narzędziem oszczędzającym czas i pracę, ponieważ pomaga w wykonywaniu żmudnych porównań. W związku z tym jest to istotna część wymagających procesów porównawczych stosowanych przez osoby prywatne, naukowców, prawników, kryminalistów i innych zawodowych przedsięwzięć — w celu zidentyfikowania czasami trudnych do wykrycia różnic potrzebnych do wykrycia.
Zastosowania te obejmują:
- Korekty tekstów, planów lub rysunków.
- Edytuj zmiany w mediach.
- Pominięcie uznania dla cytatów, cytatów, wyciągów lub przykładów.
- Plagiat.
- Zmiana dokumentów prawnych.
- oszustwo .
- Fałszerstwo .
- Fałszerstwo lub „ głębokie fałszerstwo ” w celu podszywania się.
- Spory dotyczące własności lub kredytu na wspólne wysiłki.
- Chronologia ewolucji projektu lub wysiłku.
- Wykryj steganografię (praktykę ukrywania danych na widoku).
- Odkryj usuwanie znaków wodnych .
- Celowe zniesławienie .
- Identyfikacja graffiti , tatuażu lub innego znaku kulturowego z charakterystycznym stylem.
- Nieumyślne lub przypadkowe uszkodzenie.
- Zmiany w zdrowiu istot żywych.
- Ocena ryzyka rozprzestrzeniania się uszkodzeń konstrukcji.
- Ocena do renowacji.
- Degradacja spowodowana skutkami narażenia środowiskowego w czasie, w tym naturalna entropia (spadek w czasie):
- Utlenianie.
- Ekspozycja na deszcz.
- Ścieranie z piasku napędzanego wiatrem.
- Wietrzenie spowodowane zmianami temperatury w środowisku, na przykład spowodowane cyklami zamrażania i rozmrażania.
- Ulotne (tj. nietrwałe) pigmenty w obrazach lub materiałach drukowanych w wyniku ekspozycji na światło ultrafioletowe.
- Narażenie na wibracje, takie jak procesy przemysłowe, pochodzi z ruchu kołowego.
Ogólny
Podstawowe informacje ogólne o oprogramowaniu do porównywania plików .
Nazwa | Twórca | FOSS | Bezpłatny | Data pierwszego publicznego wydania | Rok ostatniej stabilnej wersji | Okna | Prochowiec | Linuks | Inne platformy | Maksymalny obsługiwany rozmiar pliku |
---|---|---|---|---|---|---|---|---|---|---|
Bez porównania | Oprogramowanie skutera | NIE; Prawnie zastrzeżony | NIE | 1996 | 2023-02-03 (v4.4.5) | Tak | Tak | Tak | > 2 GB (64 bity) | |
Porównaj++ | Oprogramowanie Coode | NIE; Prawnie zastrzeżony | NIE | 2010 | 2016-7-17 (3.0.1.0b) | Tak | NIE | NIE | ||
różnica , różnica3 | AT&T | Tak; BSD 3-klauzulowe , BSD 4-klauzulowe , CDDL , GPL, zastrzeżone | Tak | 1974 | NIE | Tak ( Mac OS X ) | Tak | przeniesiony na większość platform w ramach SCCS | > 2 GB, ale mniej niż 64 bity | |
Zaćmienie (porównaj) | Tak; Licencja publiczna Eclipse | Tak | 2004-07-21 | 2016-09-28 (4.6.1 (Neon.1)) | Tak | Tak | Tak | Wszystko z Javą | ||
Ediff | Michał Kifer | Tak; GPL | Tak | 1994 | 2.81.4 | Tak | Tak ( Mac OS X ) | Tak | Wszystko z Emacsem i diff | |
ExamDiff Pro | PrestoSoft | NIE; Prawnie zastrzeżony | NIE | 1998 | 2022-06-04 (v 12.0.1.22) | Tak ( WinXP i nowsze) | NIE | NIE | ||
Far Manager (porównaj) | Eugeniusz Roshal (oryginał); Grupa FAR | Tak; Poprawiona licencja BSD | Tak | 1996 | 2022-02-02 (wersja 3.0, kompilacja 5959) | Tak | NIE | NIE | Dostępna jest wersja beta far2l, rozwidlenia FAR Manager v2 dla Linuksa, która działa również na systemach OSX/MacOS i BSD. | |
fc | Microsoftu | NIE; Prawnie zastrzeżony | Tak; Część systemu operacyjnego | 1987 | Tak (DOS) | NIE | NIE | |||
FileMerge (aka opendiff) | Apple Inc. | NIE; Prawnie zastrzeżony | Tak; (część narzędzi programistycznych Apple ) | 1993 (część NEXTSTEP 3.2) | 2014 (v2.8) | NIE | Tak (Mac OS X) | NIE | ||
FreeFileSync | Zenju | Tak; GPLv3 | Tak | 2008 | 2020-12-04 (v11.4) | Tak | Tak | Tak | ||
Guiffy SureMerge | Oprogramowanie Guiffy | NIE; Prawnie zastrzeżony | NIE | 2000 | 2022-09-06 (v12.1) | Tak | Tak | Tak | Wszystko z Javą | > 2 GB |
IntelliJ IDEA (porównaj) | JetBrains | NIE; Prawnie zastrzeżony | NIE | 2001 | 2019-08-20 (2019.2.1) | Tak | Tak | Tak | ||
Wtyczka jEdit JDiff | Różny | Tak; GPL | Tak | 1998 | 2020-09-03 (5.6.0) | Tak | Tak | Tak | Wszystko z Javą | |
Różnice Łazarza | Łazarz (oprogramowanie) | Tak; GPL | Tak | 2000 | 2020-07-11 (2.0.10) | Tak | Tak | Tak | FreeBSD | |
Stopić | Stephena Kennedy'ego | Tak; GPLv2+ | Tak | 2002 | 2020-02-16 (3.20.2) | Tak | Tak | Tak | BSD , Solaris | |
Notepad++ (porównaj) | Różny | Tak; GPLv3 | Tak | 2009 | 2015-01-06 (1.5.6.6) | Tak | NIE | NIE | ||
Wymuś P4Merge | Z konieczności | NIE; Prawnie zastrzeżony | Tak | 2019 (2019.1/1815056) | Tak | Tak | Tak | Słońce Solaris | ||
Ładna różnica | Austina Cheneya | Tak; Kompatybilny z MIT | Tak | 2009 | 2019-09-02 (101.2.6) | Tak ( Internet ) | Tak ( Internet ) | Tak ( Internet ) | Node.js | |
Tkdiff | Tkdiff | Tak; GPLv2+ | Tak | 2003 (lub wcześniej) | 2021-03-24 (v5.2.1) | Tak ( Tcl ) | Tak (Tcl) | Tak (Tcl) | Wszystko z Tcl | |
Total Commander (porównaj) | Christiana Ghislera | NIE; Prawnie zastrzeżony | NIE | 2020-03-25 (v9.51) | Tak | NIE | NIE | |||
twdiff (Pomocnik TextWrangler Diff) | Bare Bones Software, Inc. | NIE; Prawnie zastrzeżony | Tak; z TextWranglerem | 2012 (1.0 (v22)) | NIE | Tak | NIE | NIE | ||
vimdiff | Brama Moolenaara i in. | Tak; Zgodne z GPL | Tak | 2001 | 2016-10-03 (v8.0.0022) | Tak | Tak | Tak | Wszystko z vimem | |
Różnica wiatru | Microsoftu | NIE; Prawnie zastrzeżony | Tak; Część platformy SDK | 1992 | 2010-05-14 (v6.1.7716.0) | Tak | NIE | NIE | NIE | |
WinMerge | Dean Grimm | Tak; GPL | Tak | 1998 | 2022-01-27 (v2.16.18) | Tak ( Win95 i nowsze) | Tak (w winie) | Tak (w winie) | 2 GB | |
UKC | USC CSSE | NIE; Ograniczona licencja publiczna USC-CSSE | Tak | 2009 | 2015-12-30 (2015.12) | Tak | Tak | Tak {2.6.9} | Słońce Solaris | |
Nazwa | Twórca | FOSS | Bezpłatny | Data pierwszego publicznego wydania | Rok ostatniej stabilnej wersji | Okna | Prochowiec | Linuks | Inne platformy | Maksymalny obsługiwany rozmiar pliku |
Porównaj funkcje
Nazwa | Pokaż zmiany w linii | Porównanie katalogów | Porównanie binarne | Przeniesione linie | Porównanie trójstronne | Łączyć | Strukturalne porównanie | Ręczne porównanie wyrównania | Porównaj obraz |
---|---|---|---|---|---|---|---|---|---|
Bez porównania | Tak | Tak | Tak | Tak | Tak (pliki i foldery) | Tak (tylko Pro) | Tak | Tak | |
Porównaj++ | Tak | Tak | Tak | Tak | Tak (C/C++, C#, Java, JavaScript, CSS3) | ||||
różnica | NIE | Tak | częściowo | NIE | NIE | NIE | |||
różnica3 | NIE | NIE | Tak (nie opcjonalne) | ||||||
Zaćmienie (porównaj) | Tak | Nie (tylko przodek) | Tak | NIE | |||||
Ediff | Tak | Tak | Tak | Tak | Tak | ||||
ExamDiff Pro | Tak | Tak | Tak | Tak | Tak (tylko ExamDiff Pro Master) | Tak | synchronizacja ręczna | ||
Far Manager (porównaj) | Tak (przez wtyczkę) | Tak | Tak | Tak (przez wtyczkę) | NIE | NIE | |||
fc | NIE | NIE | Tak | NIE | NIE | ||||
FileMerge (aka opendiff) | Tak | Tak | Tak | Tak (opcjonalnie przodek) | Tak | ||||
Guiffy SureMerge | Tak | Tak | Tak | Tak | Tak | Tak | Tak | ||
IntelliJ IDEA (porównaj) | Tak | Tak | Tak | NIE | Tak | Tak | Tak | Tak | |
Wtyczka jEdit JDiff | Tak | NIE | Tak | ||||||
Różnice Łazarza | |||||||||
Stopić | Tak | Tak | NIE | NIE | Tak | Tak | wyrównanie linii, odłącz przewijanie | ||
Notepad++ (porównaj) | Tak | NIE | NIE | Tak | NIE | NIE | NIE | ||
Wymuś P4Merge | Tak | NIE | NIE | Tak | Tak | Tak | |||
Ładna różnica | Tak | Tak | NIE | NIE | NIE | NIE | Tak | NIE | |
Tkdiff | Tak | NIE | NIE | NIE | NIE | NIE | |||
Total Commander (porównaj) | Tak | Tak | Tak | NIE | NIE | Tak | NIE | porównanie ponownej synchronizacji | NIE |
vimdiff | Tak | Tak (przez wtyczkę DirDiff) | Tak | Tak | |||||
Różnica wiatru | Tak | Tak | Tak | Tak | NIE | NIE | |||
WinMerge | Tak | Tak | Tak | Tak (przez Opcje) | Tak | Tak | Tak | Tak | |
UKC | Tak | Tak | Tak | Tak | NIE | Tak | |||
Nazwa | Pokaż zmiany w linii | Porównanie katalogów | Porównanie binarne | Przeniesione linie | Porównanie trójstronne | Łączyć | Strukturalne porównanie | Ręczne porównanie wyrównania | Porównaj obraz |
Funkcje API / edytora
Nazwa | GUI | CLI | Skrypty | Poziomy pionowy | Podświetlanie składni | Raporty |
---|---|---|---|---|---|---|
Bez porównania | Tak | Tak | Tak | Obydwa | Tak | XML, HTML, CSV, tekst, łatka Unix |
Porównaj++ | Tak | Tak | Obydwa | Tak | HTML, tekst (połączony lub obok siebie) | |
różnica | NIE | Tak | Poziomy | Tak potok do wyróżnienia różnicowego | ||
różnica3 | NIE | Tak | Poziomy | |||
Zaćmienie (porównaj) | Tak | Pionowy | Tak | |||
Ediff | Tak | Tak | umykać | Obydwa | Tak | |
ExamDiff Pro | Tak | Tak | opcjonalny | Tak | UNIX, HTML, Diff | |
Far Manager (porównaj) | Tak | Tak | Tak | Tak | NIE | |
fc | NIE | Tak | Poziomy | |||
FileMerge (aka opendiff) | Tak | Tak | Pionowy | Tak | NIE | |
Guiffy SureMerge | Tak | Tak | API Javy | Obydwa | Tak | HTML, tekst, poprawka Unix |
IntelliJ IDEA (porównaj) | Tak | Tak | Pionowy | Tak | ||
Wtyczka jEdit JDiff | Tak | Obydwa | Tak | |||
Różnice Łazarza | Tak | Tak | ||||
Stopić | Tak | NIE | Tak | NIE | ||
Notepad++ (porównaj) | Tak | Tak | Obydwa | Tak | NIE | |
Wymuś P4Merge | Tak | Tak | Pionowy | Tak | NIE | |
Ładna różnica | Tak | Tak | JavaScript | Obydwa | Tak | XHTML |
Tkdiff | Tak | |||||
Total Commander (porównaj) | Tak | Obydwa | NIE | NIE | ||
vimdiff | Tak | Tak | skrypt vima | Obydwa | Tak | HTML |
Różnica wiatru | Tak | Tak | Poziomy | NIE | Tekst | |
WinMerge | Tak | Tak | Obydwa | Tak | CSV, rozdzielany znakami tabulacji, HTML, XML | |
UKC | Tak | Tak | Pionowy | Tak | Tekst, CSV | |
Nazwa | GUI | CLI | Skrypty | Poziomy pionowy | Podświetlanie składni | Raporty |
Inne funkcje
Niektóre inne funkcje, które nie zmieściły się w poprzedniej tabeli
Nazwa | Wsparcie ZIP | Obsługa FTP | Obsługa SFTP | Przeglądanie kontroli wersji | Tworzenie poprawek | Aplikacja poprawki | Podgląd poprawki | Obsługa Unicode | Obsługa XML |
---|---|---|---|---|---|---|---|---|---|
Bez porównania | Tak | Tak | Tak | SVN | Tak | Tak | Tak | Tak | |
Porównaj++ | SVN, CVS, Git, Microsoft TFS, Perforce, VSS przy użyciu wiersza poleceń | Tak | |||||||
różnica | NIE | NIE | NIE | Tak | Tak z patchem | Tak z patchem | NIE | NIE | |
różnica3 | NIE | NIE | NIE | ||||||
Zaćmienie (porównaj) | Tak CVS , Subversion , Git , Mercurial , Baazar | Tak | |||||||
Ediff | Tak | Tak | RCS, CVS, SVN, Mercurial, git (wszystko obsługiwane przez tryb VC Emacsa) | Tak | Tak | Tak | |||
ExamDiff Pro | Tak | Tak | tylko normalna różnica | Tak | |||||
Far Manager (porównaj) | NIE | NIE | NIE | NIE | NIE | NIE | Tak | NIE | |
fc | NIE | NIE | NIE | ||||||
FileMerge (aka opendiff) | NIE | obsługiwane przez system operacyjny | NIE | NIE | NIE | ||||
Guiffy SureMerge | Tak | Tak | Tak | Tak | Tak | ||||
IntelliJ IDEA (porównaj) | Tak | Tak | Tak | Tak | Tak | Tak | Tak | Tak | |
Wtyczka jEdit JDiff | Tak | Tak | Tak | Tak | Tak | Tak | Tak | ||
Różnice Łazarza | |||||||||
Stopić | CVS , Subversion , Git , Mercurial , Baazar | Tak | Tak | ||||||
Notepad++ (porównaj) | NIE | Tak | Git, Subversion (porównaj z bazą) | NIE | NIE | NIE | Tak | NIE | |
Wymuś P4Merge | NIE | Tak | |||||||
Ładna różnica | NIE | NIE | NIE | NIE | NIE | NIE | NIE | Tak | Tak |
Tkdiff | NIE | NIE | CVS, RCS, Subversion | NIE | NIE | NIE | NIE | NIE | |
Total Commander (porównaj) | Tak | Tak | Tak | NIE | NIE | NIE | NIE | Tak | NIE |
vimdiff | Tak | Tak | Tak | Tak | |||||
Różnica wiatru | NIE | NIE | NIE | NIE | |||||
WinMerge | Tak | NIE | Mercurial, Subversion, Visual Source Safe, Rational ClearCase | Tak | Tak | ||||
UKC | Tak | NIE | Tak | ||||||
Nazwa | Wsparcie ZIP | Obsługa FTP | Obsługa SFTP | Przeglądanie kontroli wersji | Tworzenie poprawek | Aplikacja poprawki | Podgląd poprawki | Obsługa Unicode | Obsługa XML |
Aspekty
Jakie aspekty można/są porównywać?
Nazwa | Wielkość liter nazwy pliku | CRC | Data pliku | Sezonowa zmiana czasu | Obudowa postaci |
---|---|---|---|---|---|
Bez porównania | Tak | Tak | Tak | Tak | Tak |
Porównaj++ | Tak | Tak | Tak | Tak | |
różnica | Tak | NIE | NIE | NIE | Opcjonalny |
diff3 | |||||
Eclipse (porównaj) | |||||
Ediff | |||||
ExamDiff Pro | NIE | Tak | Tak | Tak | Tak |
Far Manager (porównaj) | Tak | NIE | Tak | NIE | Tak |
fc | NIE | Opcjonalny | |||
FileMerge (aka opendiff) | NIE | NIE | NIE | Opcjonalny | |
Guiffy SureMerge | zależne od systemu plików | Tak | Tak | ||
IntelliJ IDEA (porównaj) | |||||
jEdit JDiff plugin | |||||
Lazarus Diff | |||||
Meld | |||||
Notepad++ (porównaj) | NIE | NIE | NIE | Tak | |
Wymuś P4Merge | — | NIE | NIE | NIE | Tak |
Ładna różnica | — | NIE | NIE | NIE | Opcjonalny |
Tkdiff | |||||
Total Commander (porównaj) | Opcjonalny | Tak (tylko podczas synchronizacji) | Opcjonalny | ||
vimdiff | NIE | NIE | NIE | NIE | Tak |
Różnica wiatru | NIE | NIE | kiedy inaczej | Tak | Opcjonalny |
WinMerge | NIE | NIE | Opcjonalny | Opcjonalny | |
UKC | NIE | NIE | Tak | NIE | |
Nazwa | Wielkość liter nazwy pliku | CRC | Data pliku | Sezonowa zmiana czasu | Obudowa postaci |
Efekty stref czasowych
systemami plików Microsoft FAT i NTFS , sygnatura czasowa wyświetlana przez ten sam plik może ulec zmianie, tak że identyczne pliki z różnymi historiami przechowywania zostaną uznane za różne przez moduł porównujący, który wymaga zgodności sygnatur czasowych. Różnica to dokładna liczba kwadransów do 95 (te same minuty modulo 15 i sekundy), jeśli plik był transportowany między strefami; istnieje również godzinna różnica w obrębie jednej strefy spowodowana przejściem między czasem standardowym a czasem letnim (DST). Niektóre, ale nie wszystkie, oprogramowanie do porównywania i synchronizacji plików można skonfigurować tak, aby ignorowało różnice w czasie letnim i strefach czasowych. Oprogramowanie, o którym wiadomo, że ma kompensację czasu letniego, jest zaznaczone w Aspekty .