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
Cum se folosește: Comparare text (Diff)
- Lipește textul original în stânga și textul modificat în dreapta sau deschide două fișiere.
- Compararea se actualizează pe măsură ce scrii. Alege vizualizarea În paralel sau Unificat.
- Bifează Ignoră spațiile albe, Ignoră majusculele sau Ignoră liniile goale pentru a ascunde zgomotul, cum ar fi reindentarea.
- Folosește Ascunde nemodificatele pentru a te concentra pe modificări, cu trei linii de context în jurul fiecăreia.
- Apasă Copiază ca patch sau Descarcă .diff pentru a obține un unified diff standard, pe care îl poți aplica cu
git applysaupatch.
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.