CodeKitHub
Teksta rīki

Teksta Diff — salīdzini divus tekstus tiešsaistē

Pēdējoreiz atjaunināts:

Lai salīdzinātu divus tekstus, ielīmē katru versiju attiecīgajā laukā zemāk, un rīks izceļ katru pievienoto rindiņu zaļā krāsā un katru noņemto rindiņu sarkanā krāsā, nemainītas rindiņas parādot kā kontekstu — tā pati diff pieeja, ko izmanto git un koda pārskatīšanas rīki. Viss paliek tavā pārlūkā.

Kas ir šis rīks?

Diff (atšķirību) rīks salīdzina divus tekstus un parāda minimālo izmaiņu kopu, kas vienu tekstu pārvērš otrā. Tā versiju kontroles sistēmas, piemēram, Git, rāda koda izmaiņas, un tas ir tikpat noderīgi, salīdzinot konfigurācijas failus, līgumus, rakstus vai jebkuru divu jebkā versiju.

Šis rīks salīdzina rindiņu pa rindiņai, izmantojot to pašu algoritmu saimi (garākā kopīgā apakšsecība), ko izmanto klasiskās diff utilītas, tāpēc rezultāts izskatās kā pazīstams koda pārskats: + pievienotām rindiņām, − noņemtām rindiņām.

Kāpēc to izmantot?

  • Redzi, kas patiešām mainījies starp divām versijām, tā vietā, lai tās pētītu ar acīm.
  • Pazīstams git stila iznākums: zaļi pievienojumi, sarkani dzēsumi, konteksta rindiņas starp tiem.
  • Kopsavilkums ar pievienoto un noņemto rindiņu skaitu vienā skatienā.
  • Darbojas ar jebkuru tekstu — kodu, konfigurācijām, dokumentiem, sarakstiem.
  • Privāti: abi teksti paliek tavā pārlūkā, nekas netiek augšupielādēts.

Kā to lietot

  1. Ielīmē oriģinālo tekstu kreisajā laukā.
  2. Ielīmē mainīto versiju labajā laukā.
  3. Uzklikšķini "Salīdzināt".
  4. Izlasi rezultātu: zaļās rindiņas tika pievienotas, sarkanās — noņemtas, vienkāršās rindiņas ir nemainītas.

Piemērs

Ievade

Oriģināls:
rinda viens
rinda divi
rinda trīs

Mainīts:
rinda viens
rinda 2
rinda trīs

Izvade

  rinda viens
− rinda divi
+ rinda 2
  rinda trīs

Vidējā rindiņa tika mainīta, ko diff parāda kā vecās rindiņas noņemšanu un jaunās pievienošanu.

Biežākie lietošanas gadījumi

  • AI pārrakstītas rindkopas pārskatīšana: ielīmē oriģinālu un AI versiju, lai redzētu tieši, kuri teikumi mainīti, nevis pārlasītu visu no jauna, meklējot izmaiņas.
  • Divu līguma melnrakstu salīdzināšana: juridiskās izmaiņas bieži ir vieglāk pārskatīt kā rindiņu diff nekā kā izsekotās izmaiņas, ja dokuments starp versijām ticis pārformatēts.
  • Konfigurācijas faila pārbaude pēc izvietošanas: ielīmē .env vai YAML faila versiju "pirms/pēc", lai apstiprinātu, ka mainījās tikai paredzētās rindiņas.
  • Tulkota teksta versiju salīdzināšana: redzi, kuras rindiņas tulkotājs vai redaktors patiešām mainījis starp melnrakstiem.

Ierobežojumi, kas jāzina

Šis ir rindiņu līmeņa diff, nevis vārdu līmeņa diff — ja pārvieto rindkopu no dokumenta sākuma uz beigām, nemainot tās tekstu, tas parādās kā pilna dzēšana plus pilns pievienojums, nevis kā "pārvietots" atzīme. Prozai, kur mainās tikai daži vārdi teikumā, vārdu līmeņa diff rīks izceltu mazāk teksta, taču rindiņu līmenis ir standarts kodam, konfigurācijām un strukturētiem dokumentiem, un tieši uz to koncentrējas šis rīks.

Kā darbojas salīdzināšanas algoritms

Rīks atrod garāko kopīgo apakšsecību (LCS) starp abiem tekstiem — lielāko rindiņu kopu, kas parādās vienā relatīvā secībā abās versijās, pat ja starp tām tika ievietotas vai noņemtas citas rindiņas. Viss šajā kopīgajā apakšsecībā tiek rādīts kā nemainīts konteksts; viss pārējais tiek klasificēts vai nu kā noņemts (tikai oriģinālā), vai kā pievienots (tikai jaunajā versijā). Tas ir tas pats algoritms, kas ir Unix diff utilītas un Git rindiņu salīdzināšanas pamatā, tāpēc rezultāta formāts izskatīsies uzreiz pazīstams, ja esi kādreiz pārskatījis pull request.

Viena praktiska sekas: ja rindiņa dokumentā parādās dublēta (tieši tas pats teksts parādās divreiz), algoritms to sasaista ar to atkārtojumu, kas dod mazāko kopējo diff — dažreiz radot nedaudz citu sapārošanu, nekā tu intuitīvi gaidītu, lai gan galīgais pievienoto/noņemto rindiņu skaits vienmēr ir pareizs neatkarīgi no tā, kurš dublikāts tika sasaistīts ar kuru.

Biežāk uzdotie jautājumi

Vai tas salīdzina vārdu pa vārdam vai rindiņu pa rindiņai?

Rindiņu pa rindiņai, tāpat kā git diff. Mainīta rindiņa parādās kā viens noņemums plus viens pievienojums. Rindiņu līmeņa diffi ir standarts kodam un konfigurācijām un paliek pārskatāmi arī lieliem tekstiem.

Kāpēc neliela izmaiņa parāda visu rindiņu kā mainītu?

Tāpēc, ka salīdzināšanas vienība ir rindiņa — jebkura izmaiņa tajā iezīmē visu rindiņu. Sadali garas rindkopas īsākās rindiņās, ja vajadzīga smalkāka detalizācija.

Vai atstarpēm ir nozīme?

Jā. Rindiņām jāsakrīt precīzi, tāpēc atstarpe rindiņas beigās vai atšķirīga atkāpe padara rindiņas par atšķirīgām. Tas ir apzināti — atstarpju atšķirības kodā un konfigurācijās ir reālas atšķirības.

Vai ir izmēra ierobežojums?

Stingra ierobežojuma nav, taču ļoti lieli teksti (desmitiem tūkstošu rindiņu) var aizņemt mirkli, jo salīdzināšana notiek lokāli tavā ierīcē.

Vai mani teksti tiek augšupielādēti salīdzināšanai?

Nē. Diff algoritms darbojas pilnībā tavā pārlūkā ar JavaScript. Abi teksti paliek tavā ierīcē — droši līgumiem, iekšējiem dokumentiem un vēl nepublicētam kodam.

Saistītie rīki