Porównywarka tekstów

Porównaj dwa teksty linia po linii lub słowo po słowie.

O tym narzędziu

Wklej oryginalny i zmieniony tekst, aby zobaczyć, co dodano, a co usunięto. Porównuj całe linie lub pojedyncze słowa i ignoruj zmiany białych znaków, gdy nie mają znaczenia.

Jak z tego korzystać

  1. Wklej oryginalny tekst po lewej, a zmieniony po prawej.
  2. Wybierz Linie dla kodu i konfiguracji albo Słowa dla zwykłego tekstu.
  3. Włącz Ignoruj białe znaki, aby ukryć zmiany samych wcięć, albo Tylko zmienione linie, aby skupić się na różnicach.

Pytania

Co oznaczają kolory i znaki?
Linie oznaczone + na zielono istnieją tylko w zmienionym tekście, a linie oznaczone − na czerwono tylko w oryginale. Dwie kolumny liczb to numery linii w oryginale i w zmienionym tekście.
Czy mogę porównywać pliki JSON?
Tak. Aby wynik był najczytelniejszy, najpierw sformatuj oba pliki Formaterem JSON z włączonym Sortuj klucze, żeby różnice w kolejności kluczy czy odstępach nie pojawiały się jako zmiany.
Czy moje teksty są wysyłane do porównania?
Nie. Różnice są obliczane w Twojej przeglądarce, więc możesz bezpiecznie porównywać umowy, konfiguracje czy kod.
Czy mogę porównać dwa dokumenty Word lub pliki PDF?
Nie jako pliki, bo oba to formaty binarne. Skopiuj tekst z każdej wersji, wklej go do dwóch pól i porównaj w trybie Słowa, który lepiej pasuje do prozy niż Linie. Zmiany formatowania, takie jak pogrubienie, czcionki czy układ, nie są widoczne w zwykłym tekście, więc pokażą się tylko zmiany w treści.
Jak porównać dwie listy bez względu na kolejność?
Najpierw posortuj obie listy z tymi samymi ustawieniami w narzędziu Sortowanie, usuwanie duplikatów i czyszczenie linii, np. Od A do Z z usuwaniem duplikatów, a potem wklej je tutaj w trybie Linie. Linie oznaczone − występują tylko na pierwszej liście, a linie oznaczone + tylko na drugiej, co daje Ci różnicę między dwoma zbiorami.
Czy widać, które znaki zmieniły się wewnątrz słowa?
Nie. Najmniejszą jednostką jest słowo, więc zmiana colour na color oznacza całe słowo jako usunięte, a nowe jako dodane. Dzięki temu wynik dla tekstu pozostaje czytelny. W przypadku długich identyfikatorów lub hashy umieść każdą wartość w osobnej linii, a zmieniona wartość wyróżni się w trybie Linie.

Jak działa porównywanie tekstów (diff)?

Narzędzie diff znajduje najmniejszy zbiór dodań i usunięć, który zamienia tekst oryginalny w zmieniony. Szuka najdłuższej sekwencji treści wspólnej dla obu wersji, a wszystko inne oznacza jako usunięte z oryginału lub dodane w zmienionym tekście. Zmodyfikowana linia pojawia się więc jako jedna usunięta linia, po której następuje jedna dodana – tak samo, jak zmiany prezentują git diff i GitHub.

Wynik zależy od jednostki porównania. Tryb Linie traktuje każdą linię jako jeden token, co pasuje do kodu, plików konfiguracyjnych, CSV i logów, gdzie linia jest znaczącą jednostką. Tryb Słowa porównuje słowo po słowie i oznacza zmiany w tekście, co lepiej sprawdza się w prozie, umowach i długich liniach, gdzie jedno zmienione słowo oznaczyłoby jako zmieniony cały akapit. Linia statusu podaje liczbę dodanych i usuniętych linii albo liczbę zmian w trybie Słowa.

Jak porównać dwa pliki, ignorując białe znaki?

Aby porównać dwa pliki, użyj przycisku Otwórz plik nad każdym polem albo upuść na nie plik. Oba są odczytywane w przeglądarce i nic nie jest przesyłane. Ignoruj białe znaki, dostępne w trybie Linie, traktuje linie jako równe, gdy różnią się tylko spacjami i tabulatorami na początku lub końcu, więc bloki z nowymi wcięciami przestają wyglądać na zmiany, a spacja dodana wewnątrz linii nadal się liczy. Tylko zmienione linie ukrywa wszystko, co się zgadza.

Gdy diff oznacza każdą linię jako zmienioną, choć oba teksty wyglądają identycznie, przyczyną są zwykle zakończenia linii. Jeden plik używa windowsowego CRLF, a drugi uniksowego LF, i niewidoczny znak powrotu karetki sprawia, że każda linia jest inna. Po włączeniu Ignoruj białe znaki ten końcowy znak jest traktowany jako biały znak i szum znika. Tabulatory i spacje na początku linii są traktowane tak samo. Brak znaku nowej linii na końcu pliku nigdy nie jest zgłaszany.

Diff online czy git diff: kiedy którego używać?

git diff to właściwe narzędzie dla plików w repozytorium: zna historię, działa na całych katalogach i tworzy patche, które można zaaplikować. Porównywarka tekstów online obsługuje przypadki, w których git nie pomoże: porównanie dwóch odpowiedzi API, konfiguracji z serwera z tą z repozytorium, dwóch wersji umowy wklejonych z e-maila albo tekstu, który nigdy nie był w pliku. Wklej obie strony i od razu odczytaj wynik.

Dane strukturalne znormalizuj przed porównaniem. Sformatuj JSON w narzędziu Formater JSON z opcją Sortuj klucze, SQL z identycznymi ustawieniami w narzędziu Formater SQL, a listy posortuj w narzędziu Sortowanie, usuwanie duplikatów i czyszczenie linii, gdy kolejność nie ma znaczenia. Diff pokaże wtedy tylko prawdziwe zmiany. To narzędzie wyświetla różnice, ale nie eksportuje patcha; do unified diff użyj git diff --no-index a.txt b.txt, które działa nawet poza repozytorium.

Coś nie działa albo wynik wygląda na błędny? Zgłoś problem z tym narzędziem