Utilia

Porovnanie kódu (diff)

Porovnaj dve verzie kódu vedľa seba alebo v jednom stĺpci, so zvýraznením syntaxe, číslami riadkov, možnosťami pre medzery a unified diff na kopírovanie.

Ako porovnať dva kusy kódu

  1. Vlož starú verziu do Pôvodný kód a novú verziu do Zmenený kód.
  2. Vyber Jazyk, alebo nechaj Rozpoznať automaticky: nástroj odhadne jazyk z kódu a zobrazí ho vedľa štatistiky.
  3. Zvoľ Zobrazenie: Vedľa seba alebo V jednom stĺpci (unified).
  4. Nastav potrebné voľby: Ignorovať medzery a odsadenie, Ignorovať veľkosť písmen, Zvýrazniť zmenené slová a Zobraziť iba zmeny (3 riadky kontextu).
  5. Klikni na Porovnať. Po prvom porovnaní sa výsledok mení spolu s tvojimi úpravami.
  6. Kliknutím na Kopírovať ako unified diff alebo Stiahnuť .diff môžeš zmenu použiť ako záplatu.

Vymeniť strany vymení obe verzie, čím sa pridania zmenia na odstránenia a naopak.

Ako čítať diff

Odstránené riadky sú zafarbené načerveno a patria pôvodnej verzii, pridané riadky sú zafarbené nazeleno a patria novej verzii. Každý riadok si zachováva číslo riadka zo svojho súboru, takže v editore na neho skočíš priamo.

  • Vedľa seba zobrazí oba súbory v dvoch očíslovaných stĺpcoch. Upravený riadok stojí vedľa svojej novej verzie. So Zvýrazniť zmenené slová sú označené slová, ktoré sa v riadku zmenili. Bez tejto voľby si oba riadky zachovajú plné farby syntaxe.
  • V jednom stĺpci (unified) ukazuje jeden stĺpec ako pri revízii kódu: pri každom zmenenom bloku najprv odstránené riadky (−), potom pridané riadky (+), s pôvodnými aj novými číslami riadkov.
  • Zobraziť iba zmeny (3 riadky kontextu) zbalí dlhé nezmenené úseky do značky „⋯ nezmenených riadkov: N“, vďaka čomu sa veľké súbory kontrolujú oveľa ľahšie.

Riadok štatistiky počíta pridané, odstránené a nezmenené riadky.

Zvýrazňovanie syntaxe

Zvýrazňovanie prebieha v tvojom prehliadači pomocou highlight.js. Pri prvom porovnaní sa načíta iba gramatika zvoleného jazyka, takže stránka zostáva ľahká. Podporované jazyky zahŕňajú JavaScript, TypeScript, Python, Javu, C#, C / C++, Go, Rust, PHP, Ruby, CSS, HTML / XML, JSON, YAML, SQL, Bash / Shell a Markdown. Automatické rozpoznanie používa jednoduché stopy (kľúčové slová, zátvorky, analýzu JSON). Ak sa pomýli, vyber jazyk sám alebo zvoľ Čistý text.

Medzery, odsadenie a konce riadkov

Ignorovať medzery a odsadenie porovnáva riadky po odstránení okrajových medzier a zlúčení súvislých medzier a tabulátorov, takže súbor preodsadený z 2 na 4 medzery alebo z tabulátorov na medzery nezobrazí žiadny rozdiel. Konce riadkov Windows (CRLF) a Unix (LF) sa pred porovnaním zjednotia, takže súbor, v ktorom sa zmenili len konce riadkov, sa ohlási ako rovnaký. Pamätaj, že medzery môžu byť dôležité v Pythone, YAML a súboroch Makefile: ak je odsadenie významné, túto voľbu vypni.

Formát unified diff

Exportovaná záplata používa štandardný formát unified, ktorý čítajú git apply, patch a nástroje na revíziu kódu: hlavička s dvoma názvami súborov a potom bloky začínajúce @@ -a,b +c,d @@ s tromi riadkami kontextu okolo každej zmeny. Súbory sa volajú original a changed s príponou podľa jazyka.

Často kladené otázky

Nahráva sa môj kód na server?

Nie. Porovnanie aj zvýrazňovanie bežia lokálne v tvojom prehliadači, kód nikdy neopustí tvoje zariadenie.

Čím sa líši od nástroja na porovnanie textu?

Používa rovnaký riadkový porovnávací nástroj, no pridáva zvýrazňovanie syntaxe, zobrazenie unified, zbaľovanie kontextu a spracovanie medzier prispôsobené kódu.

Prečo sú dva riadky označené ako zmenené, hoci vyzerajú rovnako?

Pravdepodobne sa líšia v neviditeľných znakoch: koncových medzerách, tabulátoroch namiesto medzier alebo pevnej medzere. Zaškrtni Ignorovať medzery a odsadenie a overíš to.

Môžem stiahnutú záplatu použiť v Gite?

Áno. Ulož ju a spusti patch original.js < changes.diff, alebo uprav názvy súborov v hlavičke a použi git apply.

Aké veľké môžu byť úryvky?

Niekoľko tisíc riadkov sa porovná rýchlo. Ak sú dva veľmi veľké súbory úplne odlišné, nástroj sa po pár sekundách zastaví a vyzve ťa porovnať menšie časti.