Ce este acest instrument?
Un instrument de diff (diferență) compară două texte și arată setul minim de modificări care transformă unul în celălalt. Așa afișează sistemele de control al versiunilor precum Git modificările de cod, și este la fel de util pentru compararea fișierelor de configurare, contractelor, articolelor sau oricăror două versiuni ale oricărui lucru.
Acest instrument compară linie cu linie, folosind aceeași familie de algoritmi de bază (subșirul comun cel mai lung) ca și utilitarele clasice de diff, astfel încât rezultatul se citește ca o revizuire de cod familiară: + pentru linii adăugate, − pentru linii eliminate.
De ce să-l folosești?
- Vezi ce s-a schimbat efectiv între două versiuni, în loc să le compari cu ochiul liber.
- Rezultat familiar, în stil git: adăugări verzi, ștergeri roșii, linii de context între ele.
- Rezumat rapid al numărului de linii adăugate și eliminate.
- Funcționează cu orice text — cod, configurări, documente, liste.
- Privat: ambele texte rămân în browserul tău, nimic nu este încărcat pe server.
Cum se folosește
- Lipește textul original în caseta din stânga.
- Lipește versiunea modificată în caseta din dreapta.
- Apasă "Compare".
- Citește rezultatul: liniile verzi au fost adăugate, liniile roșii au fost eliminate, liniile simple sunt neschimbate.
Exemplu
Intrare
Original:
line one
line two
line three
Changed:
line one
line 2
line threeRezultat
line one
− line two
+ line 2
line threeLinia din mijloc a fost modificată, ceea ce diff-ul arată ca eliminarea liniei vechi și adăugarea celei noi.
Cazuri de utilizare comune
- Revizuirea unui paragraf rescris de AI: lipește originalul și versiunea AI pentru a vedea exact ce propoziții s-au schimbat, în loc să recitești totul pentru a găsi modificările.
- Compararea a două variante de contract: modificările juridice sunt adesea mai ușor de urmărit ca diff pe linii decât ca modificări urmărite, atunci când documentul a fost reformatat între versiuni.
- Verificarea unui fișier de configurare după o implementare: lipește versiunea dinainte/după a unui fișier .env sau YAML pentru a confirma că doar liniile dorite s-au schimbat.
- Compararea reviziilor unui text tradus: vezi exact ce linii a modificat efectiv un traducător sau editor între variante.
Limitări de cunoscut
Acesta este un diff la nivel de linie, nu la nivel de cuvânt — dacă muți un paragraf de la începutul unui document la sfârșit, fără a-i schimba textul, va apărea ca o ștergere completă plus o adăugare completă, nu ca o adnotare de "mutat". Pentru text narativ bogat în paragrafe, unde se schimbă doar câteva cuvinte pe propoziție, un instrument de diff la nivel de cuvânt ar evidenția mai puțin text, dar diff-ul la nivel de linie este standardul pentru cod, configurări și documente structurate, și pe acesta se concentrează acest instrument.
Cum funcționează algoritmul de comparație
Instrumentul găsește cel mai lung subșir comun (LCS) între cele două texte — cel mai mare set de linii care apar în aceeași ordine relativă în ambele versiuni, chiar dacă alte linii au fost inserate sau eliminate între ele. Tot ce se află în acel subșir comun este afișat ca context neschimbat; tot restul este clasificat fie ca eliminat (prezent doar în original), fie ca adăugat (prezent doar în versiunea nouă). Acesta este algoritmul de bază din spatele utilitarului Unix diff și al comparației linie cu linie a Git, motiv pentru care formatul de ieșire va arăta imediat familiar dacă ai revizuit vreodată un pull request.
O consecință practică: dacă o linie este duplicată în altă parte a documentului (exact același text apare de două ori), algoritmul o potrivește cu oricare apariție care menține diff-ul general cel mai mic — producând ocazional o asociere ușor diferită de cea intuitiv așteptată, deși numărul final de linii adăugate/eliminate este întotdeauna corect, indiferent de care duplicat a fost potrivit cu care.
Întrebări frecvente
Compară cuvânt cu cuvânt sau linie cu linie?
Linie cu linie, ca git diff. O linie modificată apare ca o eliminare plus o adăugare. Diff-urile la nivel de linie sunt standardul pentru cod și configurări și rămân lizibile pentru texte mari.
De ce o schimbare minoră arată întreaga linie ca modificată?
Deoarece unitatea de comparație este linia — orice schimbare din interiorul ei marchează întreaga linie. Împarte paragrafele lungi în linii mai scurte dacă ai nevoie de o granularitate mai fină.
Contează spațiile?
Da. Liniile trebuie să se potrivească exact, deci un spațiu final sau o indentare diferită fac liniile să fie considerate diferite. Acest lucru este intenționat — diferențele de spații sunt diferențe reale în cod și configurări.
Există o limită de dimensiune?
Nicio limită strictă, dar textele foarte mari (zeci de mii de linii) pot dura ceva timp, deoarece comparația rulează local, pe dispozitivul tău.
Sunt textele mele încărcate pentru comparație?
Nu. Algoritmul de diff rulează în întregime în browserul tău, cu JavaScript. Ambele texte rămân pe dispozitivul tău — sigur pentru contracte, documente interne și cod neversionat.