CodeKitHub
Tekstitööriistad

Teksti võrdlus — võrdle kahte teksti veebis

Viimati uuendatud:

Kahe teksti võrdlemiseks kleebi kumbki versioon allolevatesse kastidesse ja tööriist tõstab esile iga lisatud rea rohelisega ja iga eemaldatud rea punasega, muutmata read näidatakse kontekstina — sama diff lähenemine, mida kasutavad git ja koodiülevaatuse tööriistad. Kõik jääb su brauserisse.

Mis see tööriist on?

Diff (erinevuse) tööriist võrdleb kahte teksti ja näitab minimaalset muudatuste hulka, mis muudab ühe teiseks. Nii kuvavad versioonihaldussüsteemid nagu Git koodimuudatusi, ja see on sama kasulik konfiguratsioonifailide, lepingute, artiklite või mis tahes kahe versiooni võrdlemiseks.

See tööriist võrdleb rea kaupa, kasutades sama alusalgoritmi perekonda (pikim ühine alamjada) mis klassikalised diff-utiliidid, seega loeb väljund nagu tuttav koodiülevaatus: + lisatud ridade jaoks, − eemaldatud ridade jaoks.

Miks seda kasutada?

  • Näe, mis kahe versiooni vahel tegelikult muutus, selle asemel et neid pealtnäha võrrelda.
  • Tuttav git-stiilis väljund: rohelised lisandused, punased kustutused, kontekstiread nende vahel.
  • Kokkuvõtlik lisatud ja eemaldatud ridade arv ühe pilguga.
  • Töötab mis tahes tekstiga — kood, konfiguratsioonid, dokumendid, nimekirjad.
  • Privaatne: mõlemad tekstid jäävad su brauserisse, midagi ei laadita üles.

Kuidas kasutada

  1. Kleebi algne tekst vasakusse kasti.
  2. Kleebi muudetud versioon paremasse kasti.
  3. Klõpsa "Võrdle".
  4. Loe tulemust: rohelised read lisati, punased read eemaldati, tavalised read on muutmata.

Näide

Sisend

Algne:
rida üks
rida kaks
rida kolm

Muudetud:
rida üks
rida 2
rida kolm

Tulemus

  rida üks
− rida kaks
+ rida 2
  rida kolm

Keskmine rida muudeti, mida diff näitab vana rea eemaldamise ja uue rea lisamisena.

Levinud kasutusjuhud

  • Tehisaru ümberkirjutatud lõigu ülevaatamine: kleebi algne ja tehisaru versioon, et näha täpselt, millised laused muutusid, ilma et peaks kogu teksti uuesti läbi lugema, et muudatusi märgata.
  • Kahe lepingumustandi võrdlemine: juriidilised parandused on sageli lihtsam vaadata rea-diffina kui jälgitud muudatustena, kui dokument on versioonide vahel ümber vormindatud.
  • Konfiguratsioonifaili kontrollimine pärast juurutust: kleebi .env või YAML faili enne/pärast versioon, et kinnitada, et muutusid ainult kavandatud read.
  • Tõlgitud teksti versioonide võrdlemine: näe, milliseid ridu tõlkija või toimetaja mustandite vahel tegelikult muutis.

Piirangud, mida teada

See on rea-tasandi diff, mitte sõna-tasandi diff — kui liigutad lõigu dokumendi algusest lõppu ilma teksti muutmata, kuvatakse see täieliku kustutuse ja täieliku lisandusena, mitte "liigutatud" märkena. Lõikeohtrikkuse teksti puhul, kus lauses muutub vaid mõni sõna, tõstaks sõna-tasandi diff vähem teksti esile, kuid rea-tasandi on koodi, konfiguratsioonide ja struktureeritud dokumentide standard ning sellele see tööriist keskendub.

Kuidas võrdlusalgoritm töötab

Tööriist leiab kahe teksti vahelise pikima ühise alamjada (LCS) — suurima ridade komplekti, mis esineb mõlemas versioonis samas suhtelises järjekorras, isegi kui nende vahele on lisatud või eemaldatud teisi ridu. Kõik selles ühises alamjadas kuvatakse muutmata kontekstina; kõik muu klassifitseeritakse kas eemaldatuna (esineb ainult algversioonis) või lisatuna (esineb ainult uues versioonis). See on sama põhialgoritm, mis on Unixi diff-utiliidi ja Giti rea-kaupa võrdluse taga, mistõttu väljundvorming näib kohe tuttav, kui oled kunagi pull requesti üle vaadanud.

Üks praktiline tagajärg: kui rida esineb dokumendis mujal dubleeritult (täpselt sama tekst esineb kaks korda), sobitab algoritm selle iga esinemisega, mis hoiab üldise diffi väikseimana — mõnikord tekitades veidi teistsuguse paaristuse kui intuitiivselt ootaksid, kuigi lõplikud lisatud/eemaldatud ridade arvud on alati täpsed, olenemata sellest, milline duplikaat millisega sobitati.

Korduma kippuvad küsimused

Kas see võrdleb sõna kaupa või rea kaupa?

Rea kaupa, nagu git diff. Muudetud rida kuvatakse ühe eemalduse ja ühe lisandusena. Rea-tasandi võrdlused on koodi ja konfiguratsioonide standard ning jäävad loetavaks ka suurte tekstide puhul.

Miks näitab väike muudatus kogu rida muudetuna?

Sest võrdluse ühik on rida — mis tahes muudatus selle sees märgib kogu rea. Jaota pikad lõigud lühemateks ridadeks, kui vajad peenemat granulaarsust.

Kas tühik on oluline?

Jah. Read peavad täpselt kokku minema, seega muudab lõputühik või erinev taane read erinevaks. See on tahtlik — tühikuerinevused on koodis ja konfiguratsioonides reaalsed erinevused.

Kas on suuruspiirang?

Kõva piirangut pole, kuid väga suured tekstid (kümned tuhanded read) võivad võtta hetke, sest võrdlus toimub kohalikult sinu seadmes.

Kas mu tekstid laaditakse võrdlemiseks üles?

Ei. Diff-algoritm töötab täielikult su brauseris JavaScriptiga. Mõlemad tekstid jäävad sinu seadmesse — turvaline lepingute, sisemiste dokumentide ja avaldamata koodi jaoks.

Seotud tööriistad