Utilia

Koda atšķirību pārbaudītājs

Salīdziniet divas koda versijas blakus vai vienā kolonnā, ar sintakses izcelšanu, rindu numuriem, atstarpju opcijām un unified diff kopēšanai vai lejupielādei.

Kā salīdzināt divus koda fragmentus

  1. Ielīmējiet veco versiju laukā Sākotnējais kods un jauno versiju laukā Mainītais kods.
  2. Izvēlieties Valoda vai atstājiet Noteikt automātiski: rīks to nosaka pēc koda un parāda noteikto valodu blakus statistikai.
  3. Izvēlieties Skats: Blakus vai Vienā kolonnā (unified).
  4. Iestatiet vajadzīgās opcijas: Ignorēt atstarpes un atkāpes, Ignorēt reģistru, Izcelt mainītos vārdus un Rādīt tikai izmaiņas (3 konteksta rindas).
  5. Noklikšķiniet uz Salīdzināt. Pēc pirmā salīdzinājuma rezultāts mainās līdz ar jūsu labojumiem.
  6. Noklikšķiniet uz Kopēt kā unified diff vai Lejupielādēt .diff, lai izmaiņas izmantotu atkārtoti kā ielāpu.

Apmainīt puses apmaina abas versijas, tāpēc pievienojumi kļūst par dzēsumiem un otrādi.

Kā lasīt atšķirības

Noņemtās rindas ir iekrāsotas sarkanas un pieder sākotnējai versijai; pievienotās rindas ir iekrāsotas zaļas un pieder jaunajai versijai. Katra rinda saglabā sava faila rindas numuru, tāpēc varat uzreiz pāriet uz to savā redaktorā.

  • Blakus novieto abus failus divās numurētās kolonnās. Mainīta rinda atrodas blakus savai jaunajai versijai. Ar Izcelt mainītos vārdus tiek atzīmēti vārdi, kas rindā mainījušies; bez tās abas rindas saglabā pilnas sintakses krāsas.
  • Vienā kolonnā (unified) rāda vienu kolonnu kā koda pārskatā: katram mainītajam blokam vispirms nāk noņemtās rindas (−), tad pievienotās (+), ar vecajiem un jaunajiem rindu numuriem.
  • Rādīt tikai izmaiņas (3 konteksta rindas) sakļauj garus nemainītus posmus ar atzīmi „⋯ nemainītas rindas: N“, tāpēc lielus failus ir daudz vieglāk pārskatīt.

Statistikas rindiņa skaita pievienotās, noņemtās un nemainītās rindas.

Sintakses izcelšana

Izcelšana notiek jūsu pārlūkprogrammā ar highlight.js. Tiek ielādēta tikai izvēlētās valodas gramatika, kad pirmo reizi salīdzināt, tāpēc lapa paliek viegla. Atbalstītās valodas ir JavaScript, TypeScript, Python, Java, C#, C / C++, Go, Rust, PHP, Ruby, CSS, HTML / XML, JSON, YAML, SQL, Bash / Shell un Markdown. Automātiskā noteikšana izmanto vienkāršas pazīmes (atslēgvārdus, iekavas, JSON parsēšanu); ja tā kļūdās, izvēlieties valodu pats vai izvēlieties Vienkāršs teksts.

Atstarpes, atkāpes un rindu beigas

Ignorēt atstarpes un atkāpes salīdzina rindas pēc to apgriešanas un atstarpju un tabulāciju virkņu sakļaušanas, tāpēc fails, kas pārformatēts no 2 uz 4 atstarpēm vai no tabulācijām uz atstarpēm, neuzrāda atšķirību. Windows (CRLF) un Unix (LF) rindu beigas pirms salīdzināšanas tiek normalizētas, tāpēc fails, kurā mainījušās tikai rindu beigas, tiek uzrādīts kā identisks. Ņemiet vērā, ka atstarpēm var būt nozīme Python, YAML un Makefile failos: izslēdziet opciju, ja atkāpes ir nozīmīgas.

Unified diff formāts

Eksportētais ielāps izmanto standarta unified formātu, ko nolasa git apply, patch un koda pārskatīšanas rīki: galvene ar abiem failu nosaukumiem, tad bloki, kas sākas ar @@ -a,b +c,d @@, un trīs konteksta rindas ap katru izmaiņu. Faili tiek nosaukti original un changed ar valodai atbilstošu paplašinājumu.

Biežāk uzdotie jautājumi

Vai mans kods tiek augšupielādēts serverī?

Nē. Gan salīdzināšana, gan izcelšana notiek lokāli jūsu pārlūkprogrammā; kods nekad neatstāj jūsu ierīci.

Ar ko tas atšķiras no teksta atšķirību pārbaudītāja?

Tas izmanto to pašu rindu pa rindai salīdzināšanas dzinēju, bet papildina to ar sintakses izcelšanu, unified skatu, konteksta sakļaušanu un kodam piemērotu atstarpju apstrādi.

Kāpēc divas rindas ir rādītas kā mainītas, kaut gan izskatās vienādas?

Tās, visticamāk, atšķiras ar neredzamām rakstzīmēm: atstarpēm beigās, tabulācijām pret atstarpēm vai nedalāmu atstarpi. Atzīmējiet Ignorēt atstarpes un atkāpes, lai to apstiprinātu.

Vai lejupielādēto ielāpu var pielietot ar Git?

Jā. Saglabājiet to un palaidiet patch original.js < changes.diff vai pielāgojiet failu nosaukumus galvenē un izmantojiet git apply.

Cik lieli var būt fragmenti?

Vairāki tūkstoši rindu tiek salīdzināti ātri. Ja divi ļoti lieli faili ir pilnīgi atšķirīgi, rīks pēc dažām sekundēm apstājas un lūdz salīdzināt mazākas daļas.