CodeKitHub
Besedilna orodja

Primerjava besedila — primerjaj dve besedili na spletu

Nazadnje posodobljeno:

Za primerjavo dveh besedil prilepi vsako različico v spodnja polja, orodje pa vsako dodano vrstico označi zeleno, vsako odstranjeno pa rdeče, nespremenjene vrstice pa prikaže kot kontekst — enak pristop diff, kot ga uporabljajo git in orodja za pregled kode. Vse ostane v tvojem brskalniku.

Kaj je to orodje?

Orodje za primerjavo (diff) primerja dve besedili in pokaže najmanjši nabor sprememb, ki eno spremeni v drugo. Tako sistemi za nadzor različic, kot je Git, prikazujejo spremembe kode, enako uporabno pa je tudi za primerjavo konfiguracijskih datotek, pogodb, člankov ali katerihkoli dveh različic česarkoli.

To orodje primerja vrstico za vrstico z uporabo iste družine osnovnega algoritma (najdaljše skupno podzaporedje) kot klasična orodja za primerjavo, tako da izpis izgleda kot znan pregled kode: + za dodane vrstice, − za odstranjene vrstice.

Zakaj ga uporabiti?

  • Vidiš, kaj se je dejansko spremenilo med dvema različicama, namesto da bi ju primerjal na oko.
  • Znan izpis v git slogu: zelene dodane vrstice, rdeče odstranjene vrstice, vmesne kontekstne vrstice.
  • Povzetek števila dodanih in odstranjenih vrstic na prvi pogled.
  • Deluje s katerimkoli besedilom — kodo, konfiguracijami, dokumenti, seznami.
  • Zasebno: obe besedili ostaneta v tvojem brskalniku, nič se ne naloži.

Kako ga uporabljati

  1. Prilepi izvirno besedilo v levo polje.
  2. Prilepi spremenjeno različico v desno polje.
  3. Klikni "Primerjaj".
  4. Preberi rezultat: zelene vrstice so bile dodane, rdeče odstranjene, navadne vrstice so nespremenjene.

Primer

Vnos

Izvirno:
vrstica ena
vrstica dve
vrstica tri

Spremenjeno:
vrstica ena
vrstica 2
vrstica tri

Rezultat

  vrstica ena
− vrstica dve
+ vrstica 2
  vrstica tri

Srednja vrstica je bila spremenjena, kar diff prikaže kot odstranitev stare vrstice in dodajanje nove.

Pogosti primeri uporabe

  • Pregledovanje odstavka, ki ga je AI na novo napisal: prilepi izvirnik in AI različico, da vidiš natanko, katere povedi so se spremenile, namesto da bi znova prebral vse skupaj, da bi opazil urejanja.
  • Primerjava dveh osnutkov pogodbe: pravni popravki so pogosto lažje pregledni kot primerjava vrstica za vrstico kot kot sledene spremembe, kadar je bil dokument med različicami preoblikovan.
  • Preverjanje konfiguracijske datoteke po namestitvi: prilepi stanje pred/po datoteke .env ali YAML, da potrdiš, da so se spremenile le nameravane vrstice.
  • Primerjava revizij prevedenega besedila: preglej, katere vrstice je prevajalec ali urednik dejansko spremenil med osnutki.

Omejitve, ki jih moraš poznati

To je primerjava na ravni vrstic, ne na ravni besed — če odstavek premakneš z vrha dokumenta na dno, ne da bi spremenil njegovo besedilo, se to prikaže kot popolna izbris plus popolna dodajanje, ne kot oznaka "premaknjeno". Pri prozi, kjer se le nekaj besed spremeni na poved, bi orodje za primerjavo na ravni besed označilo manj besedila, a primerjava na ravni vrstic je standard za kodo, konfiguracije in strukturirane dokumente in je to, na kar se to orodje osredotoča.

Kako deluje algoritem primerjave

Orodje najde najdaljše skupno podzaporedje (LCS) med obema besediloma — največji nabor vrstic, ki se pojavijo v enakem relativnem vrstnem redu v obeh različicah, tudi če so bile med njimi vstavljene ali odstranjene druge vrstice. Vse v tem skupnem podzaporedju je prikazano kot nespremenjen kontekst; vse ostalo je razvrščeno bodisi kot odstranjeno (prisotno le v izvirniku) bodisi kot dodano (prisotno le v novi različici). To je isti osnovni algoritem, ki poganja orodje Unix diff in primerjavo vrstica za vrstico v Gitu, zato bo izpis takoj videti znan, če si kdaj pregledoval pull request.

Ena praktična posledica: če se vrstica podvoji drugje v dokumentu (natanko isto besedilo se pojavi dvakrat), algoritem to poveže s tisto pojavitvijo, ki ohrani celotno primerjavo najmanjšo — občasno ustvari nekoliko drugačno povezavo, kot bi intuitivno pričakoval, čeprav so končna števila dodanih/odstranjenih vrstic vedno natančna ne glede na to, kateri duplikat je bil povezan s katerim.

Pogosta vprašanja

Ali primerja besedo za besedo ali vrstico za vrstico?

Vrstico za vrstico, kot git diff. Spremenjena vrstica se prikaže kot ena odstranitev plus ena dodana vrstica. Primerjave na ravni vrstic so standard za kodo in konfiguracije ter ostajajo pregledne pri obsežnih besedilih.

Zakaj majhna sprememba prikaže celotno vrstico kot spremenjeno?

Ker je enota primerjave vrstica — vsaka sprememba znotraj nje označi celotno vrstico. Če potrebuješ podrobnejšo primerjavo, razdeli dolge odstavke na krajše vrstice.

Ali so pomembni presledki?

Da. Vrstice se morajo natančno ujemati, zato presledek na koncu ali drugačna zamik povzroči, da se vrstici štejeta za različni. To je namerno — razlike v presledkih so resnične razlike v kodi in konfiguracijah.

Ali obstaja omejitev velikosti?

Ni stroge omejitve, a zelo velika besedila (deset tisoč vrstic in več) lahko trajajo trenutek, saj primerjava poteka lokalno na tvoji napravi.

Ali se moji besedili naložita za primerjavo?

Ne. Algoritem za primerjavo se izvaja izključno v tvojem brskalniku z JavaScriptom. Obe besedili ostaneta na tvoji napravi — varno za pogodbe, interne dokumente in še neobjavljeno kodo.

Sorodna orodja