Comparare text (Diff Checker)

Compară două texte sau fragmente de cod linie cu linie. Liniile adăugate, eliminate și modificate sunt evidențiate, până la cuvintele exacte care diferă.

Rulează în browserFără înregistrareNimic nu este încărcat

Lipește text în ambele câmpuri pentru a vedea diferențele.

Cum se folosește: Comparare text (Diff)

  1. Lipește textul original în stânga și textul modificat în dreapta sau deschide două fișiere.
  2. Compararea se actualizează pe măsură ce scrii. Alege vizualizarea În paralel sau Unificat.
  3. Bifează Ignoră spațiile albe, Ignoră majusculele sau Ignoră liniile goale pentru a ascunde zgomotul, cum ar fi reindentarea.
  4. Folosește Ascunde nemodificatele pentru a te concentra pe modificări, cu trei linii de context în jurul fiecăreia.
  5. Apasă Copiază ca patch sau Descarcă .diff pentru a obține un unified diff standard, pe care îl poți aplica cu git apply sau patch.

Cum funcționează acest diff checker

Instrumentul împarte ambele intrări în linii și rulează algoritmul de diferențe Myers, același algoritm O(ND) folosit de git diff și GNU diff. Găsește cea mai scurtă secvență de inserări și ștergeri care transformă originalul în textul modificat, astfel încât rezultatul arată cât mai puține linii modificate. Liniile identice de la început și de la sfârșit sunt omise mai întâi, ceea ce face compararea fișierelor cu mii de linii aproape instantanee.

Când o linie eliminată și una adăugată sunt alăturate, ele sunt împerecheate ca linie modificată și comparate din nou cuvânt cu cuvânt. Cuvintele care s-au schimbat efectiv primesc o evidențiere mai puternică, așa că o variabilă redenumită sau un număr editat iese în evidență într-o linie lungă.

Vizualizare în paralel vs. unificată

În paralel pune originalul în stânga și noua versiune în dreapta, cu numere de linie pentru ambele. Este cea mai comodă vizualizare pentru texte, fișiere de configurare și modificări scurte de cod. Vizualizarea Unificat intercalează liniile eliminate (-) și adăugate (+) într-o singură coloană, formatul folosit de instrumentele de code review și fișierele patch.

Formatul unified diff (patch)

Patch-ul exportat urmează formatul diff -u: un header ---/+++, apoi blocuri (hunk-uri) care încep cu @@ -l,s +l,s @@, unde l este numărul primei linii și s numărul de linii ale hunk-ului în fiecare fișier. Fiecare hunk include trei linii de context nemodificat, așa că poate fi aplicat cu patch -p0 sau git apply chiar dacă liniile din apropiere s-au mutat.

Când să folosești opțiunile de ignorare

  • Ignoră spațiile albe tratează liniile ca egale dacă diferă doar prin spații sau tab-uri. Folosește-o după reindentarea codului sau trecerea de la tab-uri la spații.
  • Ignoră majusculele este utilă pentru SQL, HTML și fișiere de log, unde majusculele nu contează.
  • Ignoră liniile goale ascunde liniile adăugate sau eliminate doar ca spațiere.

Întrebări frecvente

Este textul meu încărcat undeva?
Nu. Compararea rulează în întregime în browser, cu JavaScript. Nimic din ce lipești nu este trimis la un server, așa că poți compara în siguranță cod privat, contracte sau fișiere de configurare.
Cât de mari pot fi textele?
Fișierele cu zeci de mii de linii se compară în mult sub o secundă pe un laptop obișnuit. Deoarece costul algoritmului crește cu numărul de diferențe, cel mai mult durează două fișiere uriașe complet diferite.
Pot compara două fișiere în loc să lipesc textul?
Da. Folosește butoanele Deschide fișier de deasupra fiecărei casete pentru a încărca un fișier local. Fișierul este citit de browser și nu este încărcat niciodată.
De ce o linie apare ca eliminată și adăugată în loc de modificată?
Liniile sunt împerecheate ca „modificate” doar când un bloc de linii eliminate este imediat lângă un bloc de linii adăugate. Dacă cele două linii au foarte puțin text comun, evidențierea pe cuvinte este omisă, pentru că ar fi mai confuză decât marcarea întregii linii ca modificată.
Cum compar obiecte JSON?
Folosește instrumentul JSON Diff. Acesta compară structura parsată, deci ordinea cheilor și formatarea nu creează diferențe false, și listează căile exacte care s-au schimbat.

Instrumente similare