CodeKitHub
Alati za tekst

Usporedba teksta — usporedi dva teksta online

Zadnje ažurirano:

Za usporedbu dva teksta, zalijepi svaku verziju u polja ispod i alat će istaknuti svaki dodani redak zelenom bojom, a svaki uklonjeni redak crvenom, dok se nepromijenjeni retci prikazuju kao kontekst — isti diff pristup koji koriste git i alati za pregled koda. Sve ostaje u tvom pregledniku.

Što je ovaj alat?

Alat za usporedbu (diff) uspoređuje dva teksta i prikazuje minimalan skup promjena koji jedan pretvara u drugi. Tako sustavi za kontrolu verzija poput Gita prikazuju promjene u kodu, a jednako je koristan za usporedbu konfiguracijskih datoteka, ugovora, članaka ili bilo koje dvije verzije bilo čega.

Ovaj alat uspoređuje redak po redak koristeći istu obitelj temeljnih algoritama (najduži zajednički podniz) kao klasični diff alati, pa rezultat izgleda kao poznati pregled koda: + za dodane retke, − za uklonjene retke.

Zašto ga koristiti?

  • Vidi što se stvarno promijenilo između dvije verzije umjesto ručnog usklađivanja pogledom.
  • Poznat izlaz u git stilu: zeleni dodaci, crvena brisanja, kontekstni retci između.
  • Sažeti broj dodanih i uklonjenih redaka na prvi pogled.
  • Radi s bilo kojim tekstom — kod, konfiguracije, dokumenti, popisi.
  • Privatno: oba teksta ostaju u tvom pregledniku, ništa se ne prenosi.

Kako ga koristiti

  1. Zalijepi izvorni tekst u lijevo polje.
  2. Zalijepi izmijenjenu verziju u desno polje.
  3. Klikni "Usporedi".
  4. Pročitaj rezultat: zeleni retci su dodani, crveni retci su uklonjeni, obični retci su nepromijenjeni.

Primjer

Ulaz

Izvorno:
redak jedan
redak dva
redak tri

Izmijenjeno:
redak jedan
redak 2
redak tri

Izlaz

  redak jedan
− redak dva
+ redak 2
  redak tri

Srednji redak je promijenjen, što usporedba prikazuje kao uklanjanje starog retka i dodavanje novog.

Uobičajeni slučajevi korištenja

  • Pregled odlomka koji je prepisao AI: zalijepi izvornik i AI verziju kako bi vidio točno koje su rečenice promijenjene, umjesto ponovnog čitanja cijelog teksta da uočiš izmjene.
  • Usporedba dvije verzije ugovora: pravne izmjene često je lakše pratiti kao usporedbu redaka nego kao praćene promjene kad je dokument bio preoblikovan između verzija.
  • Provjera konfiguracijske datoteke nakon objave: zalijepi prije/poslije .env ili YAML datoteke da potvrdiš da su se promijenili samo namjeravani retci.
  • Usporedba revizija prevedenog teksta: vidi koje je retke prevoditelj ili urednik stvarno dotaknuo između nacrta.

Ograničenja koja treba znati

Ovo je usporedba na razini retka, ne na razini riječi — ako pomakneš odlomak s vrha dokumenta na dno bez promjene teksta, prikazuje se kao potpuno brisanje plus potpuno dodavanje, ne kao oznaka "premješteno". Za tekst bogat odlomcima gdje se mijenja samo nekoliko riječi po rečenici, alat za usporedbu na razini riječi istaknuo bi manje teksta, ali usporedba na razini retka standard je za kod, konfiguracije i strukturirane dokumente i na to se ovaj alat usredotočuje.

Kako funkcionira algoritam usporedbe

Alat pronalazi najduži zajednički podniz (LCS) između dva teksta — najveći skup redaka koji se pojavljuju u istom relativnom redoslijedu u obje verzije, čak i ako su drugi retci umetnuti ili uklonjeni između njih. Sve u tom zajedničkom podnizu prikazuje se kao nepromijenjeni kontekst; sve ostalo klasificira se kao uklonjeno (postoji samo u izvorniku) ili dodano (postoji samo u novoj verziji). Ovo je isti temeljni algoritam koji stoji iza Unix diff alata i Gitove usporedbe redak po redak, zbog čega će format izlaza odmah izgledati poznat ako si ikad pregledavao pull request.

Jedna praktična posljedica: ako je redak dupliciran negdje drugdje u dokumentu (potpuno isti tekst pojavljuje se dvaput), algoritam ga podudara s onom pojavom koja čini ukupnu usporedbu najmanjom — povremeno proizvodeći malo drugačije uparivanje nego što bi intuitivno očekivao, iako su konačni brojevi dodanih/uklonjenih redaka uvijek točni bez obzira koji je duplikat uparen s kojim.

Često postavljana pitanja

Uspoređuje li se riječ po riječ ili redak po redak?

Redak po redak, poput git diff. Promijenjeni redak prikazuje se kao jedno uklanjanje plus jedno dodavanje. Usporedbe na razini retka standard su za kod i konfiguracije te ostaju čitljive za velike tekstove.

Zašto sitna promjena prikazuje cijeli redak kao promijenjen?

Jer je jedinica usporedbe redak — svaka promjena unutar njega označava cijeli redak. Podijeli duge odlomke na kraće retke ako ti treba finija granularnost.

Je li razmak bitan?

Da. Retci se moraju točno podudarati, pa razmak na kraju ili drugačije uvlačenje čini retke različitima. To je namjerno — razlike u razmacima stvarne su razlike u kodu i konfiguracijama.

Postoji li ograničenje veličine?

Nema strogog ograničenja, ali vrlo veliki tekstovi (deseci tisuća redaka) mogu potrajati trenutak jer se usporedba izvršava lokalno na tvom uređaju.

Prenose li se moji tekstovi za usporedbu?

Ne. Algoritam usporedbe u potpunosti se izvršava u tvom pregledniku putem JavaScripta. Oba teksta ostaju na tvom uređaju — sigurno za ugovore, interne dokumente i neobjavljeni kod.

Povezani alati