Unealtă gratuită pentru programatori

Comparare texte online (diff)

Pui textul original și varianta modificată și vezi ce s-a adăugat și ce s-a șters, pe linii sau pe cuvinte, alăturat sau unificat. Primești și diferențele în formatul unified diff, ca la git.

Exemple de diff

Variante gata făcute: copiază codul direct sau deschide exemplul în generator și modifică-l după nevoie.

Fișier de configurare modificat Trei rânduri schimbate și unul nou, în formatul unified diff.
--- a/original.txt
+++ b/modificat.txt
@@ -1,4 +1,5 @@
 DB_HOST=localhost
-DB_NAME=site
-DB_USER=root
-DEBUG=true
+DB_NAME=site_prod
+DB_USER=site
+DEBUG=false
+CACHE=redis
Diferențe pe cuvinte [-…-] a fost șters, {+…+} a fost adăugat, ca la git diff –word-diff.
Livrarea se face în [-3-]{+1+}-[-5-]{+2+} zile lucrătoare{+, gratuit+}.
Același diff în terminal Pentru fișiere de pe disc, fără să le copiezi în pagină.
diff -u vechi.txt nou.txt > modificari.patch
git diff --no-index vechi.txt nou.txt
git diff --word-diff                 # pe cuvinte, într-un depozit git
patch vechi.txt < modificari.patch   # aplică modificările

Cum compari două texte

  1. Lipește prima variantă în Textul original și pe a doua în Textul modificat.
  2. Alege Compară: pe linii (pentru cod și configurări) sau pe cuvinte (pentru texte și paragrafe).
  3. La comparația pe linii alege Afișarea: unificat (o singură coloană) sau alăturat (două coloane).
  4. Bifează, dacă e nevoie, Ignoră diferențele de spații sau Ignoră majusculele, apoi copiază diff-ul. Comparația se face în browser; textele nu se trimit nicăieri.

Formatul unified diff

Este formatul afișat de git diff și diff -u. Rândurile cu - au fost șterse, cele cu + adăugate, iar cele cu spațiu sunt context (trei rânduri în jurul fiecărei modificări). Antetul @@ -4,6 +4,7 @@ spune că bucata începe la rândul 4 și are 6 rânduri în original și 7 în varianta nouă.

--- a/original.txt
+++ b/modificat.txt
@@ -1,4 +1,4 @@
 lapte
-pâine
+pâine integrală
 ouă

Salvat într-un fișier .patch, diff-ul se poate aplica peste fișierul original cu patch sau git apply, dacă numele din antet corespund fișierelor tale.

patch original.txt < modificari.patch
git apply --check modificari.patch   # verifică fără să aplice

Cum se calculează

Unealta folosește algoritmul Myers, același pe care îl folosește implicit git: caută cel mai mic număr de ștergeri și adăugări care transformă un text în celălalt. Pentru ca browserul să nu se blocheze, comparația pe linii acceptă până la 5.000 de rânduri în fiecare text.

Întrebări frecvente

De ce apare o linie ca ștearsă și adăugată deși arată la fel?

Diferă ceva invizibil: spații la final, un Tab în loc de spații sau finalul de rând Windows. Bifează Ignoră diferențele de spații ca să vezi doar schimbările reale.

Pot compara două fișiere Word?

Copiază textul din ele în cele două câmpuri și folosește comparația pe cuvinte. Formatarea (bold, culori) nu se compară.