Porównywarka tekstu (Diff Checker)

Porównaj dwa teksty lub fragmenty kodu linia po linii. Dodane, usunięte i zmienione linie są podświetlone, aż do konkretnych słów, które się różnią.

Działa w przeglądarceBez rejestracjiNic nie jest wysyłane

Wklej tekst do obu pól, aby zobaczyć różnice.

Jak używać: Porównywarka tekstu (Diff)

  1. Wklej oryginalny tekst po lewej, a zmieniony po prawej, lub otwórz dwa pliki.
  2. Porównanie aktualizuje się podczas pisania. Wybierz widok Obok siebie lub Ujednolicony.
  3. Zaznacz Ignoruj białe znaki, Ignoruj wielkość liter lub Ignoruj puste linie, aby ukryć szum, np. zmienione wcięcia.
  4. Użyj Ukryj niezmienione, aby skupić się na zmianach z trzema liniami kontekstu wokół każdej.
  5. Kliknij Kopiuj jako patch lub Pobierz .diff, aby uzyskać standardowy unified diff, który zastosujesz przez git apply lub patch.

Jak działa ta porównywarka

Narzędzie dzieli oba teksty na linie i uruchamia algorytm różnic Myersa, ten sam algorytm O(ND), którego używają git diff i GNU diff. Znajduje najkrótszą sekwencję wstawień i usunięć zamieniającą oryginał w zmieniony tekst, więc wynik pokazuje najmniejszą możliwą liczbę zmienionych linii. Identyczne linie na początku i końcu są najpierw pomijane, dzięki czemu porównanie plików z tysiącami linii jest niemal natychmiastowe.

Gdy usunięta i dodana linia sąsiadują ze sobą, są łączone w parę jako linia zmodyfikowana i porównywane ponownie słowo po słowie. Słowa, które faktycznie się zmieniły, dostają mocniejsze podświetlenie, więc zmieniona nazwa zmiennej czy edytowana liczba wyróżnia się nawet w długiej linii.

Widok obok siebie a ujednolicony

Widok Obok siebie pokazuje oryginał po lewej i nową wersję po prawej, z numerami linii dla obu. To najwygodniejszy widok do przeglądania tekstów, plików konfiguracyjnych i krótkich zmian w kodzie. Widok Ujednolicony przeplata usunięte (-) i dodane (+) linie w jednej kolumnie – to format używany przez narzędzia do code review i pliki patch.

Format unified diff (patch)

Eksportowany patch ma format diff -u: nagłówek ---/+++, a następnie bloki (hunki) zaczynające się od @@ -l,s +l,s @@, gdzie l to numer pierwszej linii, a s liczba linii hunka w każdym pliku. Każdy hunk zawiera trzy linie niezmienionego kontekstu, więc można go zastosować przez patch -p0 lub git apply, nawet jeśli pobliskie linie się przesunęły.

Kiedy używać opcji ignorowania

  • Ignoruj białe znaki traktuje linie jako równe, jeśli różnią się tylko spacjami lub tabulatorami. Przydaje się po zmianie wcięć lub zamianie tabulatorów na spacje.
  • Ignoruj wielkość liter przydaje się przy SQL, HTML i plikach logów, gdzie wielkość liter nie ma znaczenia.
  • Ignoruj puste linie ukrywa linie, które zostały dodane lub usunięte jedynie jako odstępy.

Najczęściej zadawane pytania

Czy mój tekst jest gdzieś wysyłany?
Nie. Porównanie działa w całości w przeglądarce za pomocą JavaScriptu. Nic, co wkleisz, nie trafia na serwer, więc możesz bezpiecznie porównywać prywatny kod, umowy czy pliki konfiguracyjne.
Jak duże mogą być teksty?
Pliki z dziesiątkami tysięcy linii porównują się na typowym laptopie w ułamku sekundy. Ponieważ koszt algorytmu rośnie z liczbą różnic, najdłużej trwa porównanie dwóch ogromnych, zupełnie różnych plików.
Czy mogę porównać dwa pliki zamiast wklejać tekst?
Tak. Użyj przycisków Otwórz plik nad każdym polem, aby wczytać lokalny plik. Plik jest odczytywany przez przeglądarkę i nigdy nie jest wysyłany.
Dlaczego linia jest pokazana jako usunięta i dodana zamiast zmodyfikowanej?
Linie są łączone jako „zmodyfikowane” tylko wtedy, gdy blok usuniętych linii sąsiaduje bezpośrednio z blokiem dodanych. Jeśli dwie linie mają bardzo mało wspólnego tekstu, podświetlenie słów jest pomijane, bo byłoby mniej czytelne niż oznaczenie całej linii jako zmienionej.
Jak porównać obiekty JSON?
Użyj narzędzia JSON Diff. Porównuje ono sparsowaną strukturę, więc kolejność kluczy i formatowanie nie tworzą fałszywych różnic, a do tego wypisuje dokładne ścieżki, które się zmieniły.

Powiązane narzędzia