bitlvl
SR

Diff alat

Nalepite staru i novu verziju. Rezultat prikazuje svaki izmenjeni red sa označenim izmenjenim znakovima, plus unified diff spreman za patch -p0.

Preuzmi .patch

Unified diff

  

Rezultati i poruke ovog alata prikazuju se na engleskom.

Kako diff radi

Diff pronalazi najmanji skup umetanja i brisanja koji jedan niz redova pretvara u drugi. Klasični algoritam (Myers, 1986, koriste ga git i GNU diff) nalazi najduži zajednički podniz u vremenu srazmernom broju razlika, pa je poređenje dve velike, gotovo identične datoteke brzo. Ova stranica ga prvo pokreće na redovima, a zatim na znakovima unutar svakog izmenjenog para, i zato se izmena jedne reči prikazuje kao jedna istaknuta reč, a ne kao dva cela reda.

Čitanje unified diff-a

--- old.txt
+++ new.txt
@@ -12,7 +12,8 @@
 red konteksta
-uklonjeni red
+dodati red
+još jedan dodati red
 red konteksta

Zaglavlje @@ daje broj reda i dužinu segmenta (hunk) u svakoj datoteci. Redovi koji počinju razmakom su nepromenjeni kontekst, - postoje samo u staroj datoteci, + samo u novoj. patch -p0 < changes.patch ga primenjuje; radi i git apply. Redovi konteksta omogućavaju patch-u da nađe pravo mesto čak i ako se datoteka pomerila.

Opcije

Ignorisanje razmaka tretira redove koji se razlikuju samo po razmacima ili tabovima kao jednake, što sakriva šum od preformatiranja i pokazuje prave izmene. Ignorisanje velikih i malih slova radi isto za kapitalizaciju. Unified diff i dalje prikazuje originalne redove; opcije utiču samo na to koji se redovi računaju kao izmenjeni.

Ograničenja

Sve radi u vašem pregledaču; nekoliko hiljada redova se poredi za znatno manje od sekunde. Veoma veliki unosi (preko oko 2.000 redova sa svake strane uz mnogo razlika) se odbijaju da bi stranica ostala responzivna; za njih koristite diff ili git diff --no-index a b lokalno.

Pitanja

Kako da uporedim dve datoteke?

Otvorite svaku u editoru i kopirajte sadržaj u dva polja. Za datoteke na serveru, diff -u stara nova ili git diff --no-index stara nova daju isti unified format bez napuštanja terminala.

Šta znači isticanje unutar reda?

Unutar para izmenjenih redova, znakovi koji se razlikuju su označeni; nepromenjeni znakovi se prikazuju obično. To je drugi diff pokrenut na nivou znaka nad tim parom.

Može li da poredi JSON ili kod?

Da; poredi tekst. Za JSON prvo lepo formatirajte obe strane (to radi JSON formater) tako da svaki ključ završi u svom redu i diff pokaže prave izmene umesto jednog ogromnog reda.

Da li se moj tekst otprema?

Ne. Poređenje radi u JavaScriptu u vašem pregledaču. Sajt nema bekend koji bi ga primio.