CodeKitHub
Polski
Narzędzia tekstowe

Text Diff — Porównaj dwa teksty online

Wklej dwie wersje tekstu i zobacz dokładnie, co się zmieniło: dodane wiersze są zaznaczone na zielono, usunięte na czerwono, a niezmienione wiersze wyświetlane są w kontekście — tak samo, jak różnice pokazują git i narzędzia do przeglądu kodu. Wszystko odbywa się w przeglądarce.

Czym jest to narzędzie?

Narzędzie do porównywania (diff) porównuje dwa teksty i pokazuje minimalny zestaw zmian, dzięki którym jeden tekst przekształca się w drugi. W ten sposób systemy kontroli wersji, takie jak Git, wyświetlają zmiany w kodzie, a narzędzie to jest równie przydatne do porównywania plików konfiguracyjnych, umów, artykułów czy dowolnych dwóch wersji dowolnych treści.

Narzędzie to porównuje kod wiersz po wierszu, wykorzystując tę samą rodzinę algorytmów (najdłuższy wspólny podciąg), co klasyczne programy do porównywania kodu, dzięki czemu wynik przypomina znany format przeglądu kodu: znak „+” oznacza dodane wiersze, a znak „−” — usunięte.

Dlaczego warto go używać?

  • Zobacz, co faktycznie się zmieniło między dwiema wersjami, zamiast porównywać je na oko.
  • Znany format wyświetlania w stylu Git: dodane fragmenty zaznaczone na zielono, usunięte na czerwono, a pomiędzy nimi wiersze kontekstowe.
  • Podsumowanie liczby dodanych i usuniętych wierszy w skrócie.
  • Działa z dowolnym tekstem — kodem, plikami konfiguracyjnymi, dokumentami, listami.
  • Prywatne: oba teksty pozostają w przeglądarce, nic nie jest przesyłane.

Jak używać

  1. Wklej oryginalny tekst w polu po lewej stronie.
  2. Wklej zmienioną wersję w prawym polu.
  3. Kliknij „Porównaj”.
  4. Zobacz wynik: zielone linie zostały dodane, czerwone linie zostały usunięte, a zwykłe linie pozostały bez zmian.

Przykład

Wejście

Original:
line one
line two
line three

Changed:
line one
line 2
line three

Wynik

  line one
− line two
+ line 2
  line three

Zmieniono środkowy wiersz, co w pliku diff widać jako usunięcie starego wiersza i dodanie nowego.

Typowe zastosowania

  • Sprawdzanie akapitu przeredagowanego przez sztuczną inteligencję: wklej tekst oryginalny oraz wersję opracowaną przez sztuczną inteligencję, aby dokładnie zobaczyć, które zdania uległy zmianie, zamiast ponownie czytać cały tekst w poszukiwaniu poprawek.
  • Porównanie dwóch wersji roboczych umowy: poprawki prawne często łatwiej jest przejrzeć w postaci różnic między wierszami niż jako „śledzone zmiany”, gdy dokument został sformatowany na nowo między poszczególnymi wersjami.
  • Sprawdzanie pliku konfiguracyjnego po wdrożeniu: wklej treść pliku .env lub YAML przed i po zmianach, aby upewnić się, że zmieniono tylko te wiersze, które miały zostać zmienione.
  • Porównanie zmian w przetłumaczonym tekście: sprawdź, które wiersze tłumacz lub redaktor faktycznie zmienił w poszczególnych wersjach roboczych.

Ograniczenia, o których należy wiedzieć

Jest to porównanie na poziomie wierszy, a nie na poziomie słów — jeśli przeniesiesz akapit z początku dokumentu na koniec bez zmiany jego treści, zostanie to wyświetlone jako całkowite usunięcie oraz całkowite dodanie, a nie jako adnotacja „przeniesiono”. W przypadku tekstów prozy, w których występuje wiele akapitów, a w każdym zdaniu zmienia się tylko kilka słów, narzędzie do porównywania na poziomie słów zaznaczyłoby mniej tekstu, jednak porównanie na poziomie wierszy jest standardem w przypadku kodu, plików konfiguracyjnych i dokumentów o ustrukturyzowanej treści i właśnie na tym skupia się to narzędzie.

Jak działa algorytm porównawczy

Narzędzie to wyszukuje najdłuższą wspólną podsekwencję (LCS) między dwoma tekstami — największy zbiór wierszy, które występują w tej samej względnej kolejności w obu wersjach, nawet jeśli pomiędzy nimi wstawiono lub usunięto inne wiersze. Wszystko, co znajduje się w tej wspólnej podsekwencji, jest wyświetlane jako niezmieniony kontekst; wszystko inne jest klasyfikowane jako usunięte (obecne tylko w oryginale) lub dodane (obecne tylko w nowej wersji). Jest to ten sam podstawowy algorytm, na którym opiera się narzędzie diff systemu Unix oraz porównanie wiersz po wierszu w Git, dlatego format wyników będzie wyglądał znajomo, jeśli kiedykolwiek przeglądałeś pull request.

Jedna z praktycznych konsekwencji: jeśli w innym miejscu dokumentu występuje duplikat wiersza (dokładnie ten sam tekst pojawia się dwukrotnie), algorytm dopasowuje go do tego wystąpienia, które zapewnia najmniejszy ogólny różnicowy wynik — co czasami prowadzi do nieco innego zestawienia, niż można by intuicyjnie oczekiwać, choć ostateczna liczba dodanych/usuniętych wierszy jest zawsze dokładna, niezależnie od tego, który duplikat został dopasowany do którego.

Najczęściej zadawane pytania

Czy porównuje się to słowo po słowie, czy wiersz po wierszu?

Wiersz po wierszu, podobnie jak w poleceniu `git diff`. Zmieniony wiersz jest przedstawiany jako jedno usunięcie i jedno dodanie. Porównania na poziomie wierszy są standardem w przypadku kodu i plików konfiguracyjnych oraz pozostają czytelne nawet w przypadku obszernych tekstów.

Dlaczego nawet najmniejsza zmiana powoduje, że cała linia jest oznaczana jako zmieniona?

Ponieważ jednostką porównania jest wiersz — każda zmiana w jego obrębie dotyczy całego wiersza. Jeśli potrzebujesz większej szczegółowości, podziel długie akapity na krótsze wiersze.

Czy spacje mają znaczenie?

Tak. Wiersze muszą być dokładnie identyczne, więc spacja na końcu lub inne wcięcie sprawiają, że wiersze są traktowane jako różne. Jest to zamierzone — różnice w spacjach są rzeczywistymi różnicami w kodzie i plikach konfiguracyjnych.

Czy obowiązuje ograniczenie rozmiaru?

Nie ma sztywnego limitu, ale porównanie bardzo obszernych tekstów (dziesiątki tysięcy wierszy) może chwilę potrwać, ponieważ odbywa się lokalnie na Twoim urządzeniu.

Czy moje teksty zostały przesłane w celu porównania?

Nie. Algorytm porównujący teksty działa w całości w przeglądarce przy użyciu JavaScript. Oba teksty pozostają na Twoim urządzeniu — co zapewnia bezpieczeństwo w przypadku umów, dokumentów wewnętrznych i niepublikowanego kodu.

Powiązane narzędzia