Porovnání textu (Diff Checker)

Porovnejte dva texty nebo úryvky kódu řádek po řádku. Přidané, odebrané a změněné řádky jsou zvýrazněné až na konkrétní slova, která se liší.

Běží v prohlížečiBez registraceNic se neodesílá

Vložte text do obou polí a uvidíte rozdíly.

Jak používat: Porovnání textu (Diff)

  1. Vložte původní text vlevo a změněný text vpravo, nebo otevřete dva soubory.
  2. Porovnání se aktualizuje během psaní. Zvolte zobrazení Vedle sebe nebo Sjednocené.
  3. Zaškrtněte Ignorovat bílé znaky, Ignorovat velikost písmen nebo Ignorovat prázdné řádky a skryjte šum, jako je změna odsazení.
  4. Pomocí Skrýt nezměněné se soustřeďte na změny se třemi řádky kontextu kolem každé z nich.
  5. Klikněte na Kopírovat jako patch nebo Stáhnout .diff a získáte standardní unified diff, který lze použít přes git apply nebo patch.

Jak toto porovnání funguje

Nástroj rozdělí oba vstupy na řádky a spustí Myersův algoritmus rozdílů, tentýž algoritmus O(ND), který používají git diff a GNU diff. Najde nejkratší posloupnost vložení a smazání, která převede původní text na změněný, takže výsledek ukáže co nejméně změněných řádků. Shodné řádky na začátku a na konci se nejprve přeskočí, díky čemuž je porovnání souborů s tisíci řádky téměř okamžité.

Když odebraný a přidaný řádek sousedí, spárují se jako upravený řádek a porovnají se znovu slovo po slovu. Slova, která se skutečně změnila, dostanou výraznější zvýraznění, takže přejmenovaná proměnná nebo upravené číslo vynikne i v dlouhém řádku.

Zobrazení vedle sebe vs. sjednocené

Vedle sebe ukazuje původní verzi vlevo a novou vpravo, s čísly řádků u obou. Je to nejpohodlnější zobrazení pro kontrolu textů, konfiguračních souborů a krátkých změn kódu. Sjednocené zobrazení prokládá odebrané (-) a přidané (+) řádky v jednom sloupci, ve formátu, který používají nástroje pro code review a soubory patch.

Formát unified diff (patch)

Exportovaný patch odpovídá formátu diff -u: hlavička ---/+++ a za ní bloky (hunky) začínající @@ -l,s +l,s @@, kde l je číslo prvního řádku a s počet řádků hunku v každém souboru. Každý hunk obsahuje tři řádky nezměněného kontextu, takže ho lze použít přes patch -p0 nebo git apply, i když se okolní řádky posunuly.

Kdy použít možnosti ignorování

  • Ignorovat bílé znaky považuje řádky za shodné, pokud se liší jen mezerami nebo tabulátory. Použijte po přeodsazení kódu nebo převodu tabulátorů na mezery.
  • Ignorovat velikost písmen se hodí pro SQL, HTML a logy, kde na velikosti písmen nezáleží.
  • Ignorovat prázdné řádky skryje řádky, které byly přidány nebo odebrány jen jako mezery.

Časté dotazy

Odesílá se můj text někam?
Ne. Porovnání běží celé ve vašem prohlížeči v JavaScriptu. Nic z toho, co vložíte, se neposílá na server, takže můžete bezpečně porovnávat soukromý kód, smlouvy nebo konfigurační soubory.
Jak velké mohou texty být?
Soubory s desítkami tisíc řádků se na běžném notebooku porovnají za zlomek sekundy. Protože náročnost algoritmu roste s počtem rozdílů, nejdéle trvají dva obrovské, zcela odlišné soubory.
Mohu místo vkládání porovnat dva soubory?
Ano. Pomocí tlačítek Otevřít soubor nad každým polem načtete místní soubor. Soubor čte váš prohlížeč a nikdy se neodesílá.
Proč je řádek zobrazen jako odebraný a přidaný místo upraveného?
Řádky se párují jako „upravené“ jen tehdy, když blok odebraných řádků přímo sousedí s blokem přidaných. Pokud mají dva řádky velmi málo společného textu, zvýraznění slov se vynechá, protože by bylo nepřehlednější než označit celý řádek jako změněný.
Jak porovnám objekty JSON?
Použijte nástroj JSON Diff. Porovnává rozparsovanou strukturu, takže pořadí klíčů a formátování nevytvářejí falešné rozdíly, a vypíše přesné cesty, které se změnily.

Související nástroje