Porovnání kódu (diff)
Porovnej dvě verze kódu vedle sebe nebo v jednom sloupci se zvýrazněním syntaxe, čísly řádků, volbami pro mezery a unified diffem ke zkopírování či stažení.
Jak porovnat dva kusy kódu
- Vlož starou verzi do pole Původní kód a novou verzi do pole Změněný kód.
- Vyber Jazyk, nebo ponech Rozpoznat automaticky: nástroj jazyk odhadne z kódu a rozpoznaný jazyk ukáže vedle statistik.
- Zvol Zobrazení: Vedle sebe, nebo V jednom sloupci (unified).
- Nastav potřebné volby: Ignorovat mezery a odsazení, Ignorovat velikost písmen, Zvýraznit změněná slova a Zobrazit jen změny (3 řádky kontextu).
- Klikni na Porovnat. Po prvním porovnání se výsledek přizpůsobuje tvým úpravám při psaní.
- Tlačítkem Kopírovat jako unified diff nebo Stáhnout .diff můžeš změnu znovu použít jako záplatu (patch).
Tlačítko Prohodit strany vymění obě verze, takže se přidání změní na odstranění a naopak.
Jak číst diff
Odebrané řádky jsou zabarvené červeně a patří původní verzi, přidané řádky jsou zelené a patří nové verzi. Každý řádek si ponechává číslo řádku ze svého souboru, takže na něj v editoru snadno skočíš.
- Vedle sebe umístí oba soubory do dvou očíslovaných sloupců. Upravený řádek stojí vedle své nové verze. S volbou Zvýraznit změněná slova jsou označena slova, která se v řádku změnila. Bez ní si oba řádky ponechají plné barvy syntaxe.
- V jednom sloupci (unified) ukazuje jeden sloupec jako při revizi kódu: u každého změněného bloku nejprve odebrané řádky (−), poté přidané řádky (+), se starými i novými čísly řádků.
- Zobrazit jen změny (3 řádky kontextu) sbalí dlouhé nezměněné úseky do značky „⋯ nezměněné řádky: N“, což výrazně usnadňuje kontrolu velkých souborů.
Řádek se statistikami počítá přidané, odebrané a nezměněné řádky.
Zvýraznění syntaxe
Zvýraznění probíhá ve tvém prohlížeči pomocí highlight.js. Při prvním porovnání se načte jen gramatika zvoleného jazyka, takže stránka zůstává lehká. Podporované jazyky zahrnují JavaScript, TypeScript, Python, Javu, C#, C / C++, Go, Rust, PHP, Ruby, CSS, HTML / XML, JSON, YAML, SQL, Bash / Shell a Markdown. Automatické rozpoznání používá jednoduché indicie (klíčová slova, závorky, parsování JSON). Pokud se splete, vyber jazyk sám nebo zvol Prostý text.
Mezery, odsazení a konce řádků
Volba Ignorovat mezery a odsazení porovnává řádky po oříznutí a sloučení posloupností mezer a tabulátorů, takže soubor s odsazením změněným ze 2 na 4 mezery nebo z tabulátorů na mezery nevykáže žádný rozdíl. Konce řádků Windows (CRLF) a Unixu (LF) se před porovnáním sjednotí, takže soubor, který změnil jen konce řádků, se hlásí jako totožný. Pozor, v Pythonu, YAML a souborech Makefile mohou mezery hrát roli: pokud je odsazení významné, volbu vypni.
Formát unified diff
Exportovaná záplata používá standardní formát unified, který čtou git apply, patch a nástroje pro revizi kódu: hlavičku se dvěma názvy souborů a poté bloky začínající @@ -a,b +c,d @@ a třemi řádky kontextu kolem každé změny. Soubory se jmenují original a changed s příponou podle jazyka.
Časté dotazy
Nahrává se můj kód na server?
Ne. Porovnání i zvýraznění probíhají lokálně ve tvém prohlížeči a kód nikdy neopustí tvoje zařízení.
Čím se to liší od nástroje pro porovnání textu?
Používá stejný řádkový porovnávací modul, ale přidává zvýraznění syntaxe, zobrazení unified, sbalení kontextu a zacházení s mezerami přizpůsobené kódu.
Proč se dva řádky zobrazují jako změněné, i když vypadají stejně?
Pravděpodobně se liší v neviditelných znacích: koncových mezerách, tabulátorech místo mezer nebo nezlomitelné mezeře. Zaškrtni Ignorovat mezery a odsazení a ověř si to.
Mohu stažený patch použít v Gitu?
Ano. Ulož ho a spusť patch original.js < changes.diff, nebo uprav názvy souborů v hlavičce a použij git apply.
Jak velké mohou úryvky být?
Několik tisíc řádků se porovná rychle. Pokud jsou dva velmi velké soubory zcela odlišné, nástroj se po několika sekundách zastaví a požádá tě, abys porovnal menší části.
Související nástroje
- Porovnání textů Porovnej dva texty a uvidíš každý rozdíl vedle sebe nebo v jednom textu, po řádcích, slovech nebo znacích. Soukromý diff přímo v prohlížeči.
- Formátovač a validátor JSON Bezplatný formátovač a validátor JSON, který zpřehlední, minifikuje a ověří JSON ve tvém prohlížeči a syntaktické chyby hlásí s řádkem a sloupcem.
- Tester regulárních výrazů Testuj regulární výrazy JavaScriptu naživo: zvýrazněné shody, zachytávací skupiny, nahrazování a srozumitelné vysvětlení každé části výrazu.