Textjämförelse / Diff
Jämför två texter och se skillnaderna markerade.
Vad är en diff-kontroll?
En diff-kontroll jämför två texter och markerar skillnaderna mellan dem. Den visar exakt vilka rader som lagts till, tagits bort eller ändrats. Diff-verktyg är viktiga för kodgranskning, dokumentjämförelse, felsökning och versionskontroll. Namnet kommer från Unix diff-kommandot, skapat av Douglas McIlroy 1974.
Moderna diff-algoritmer (som Myers diff-algoritm, använd av Git) hittar den minimala uppsättningen ändringar mellan två texter. Resultaten visas vanligtvis i "unified diff"-format — borttagna rader i rött med ett minustecken, tillagda rader i grönt med ett plustecken, oförändrad kontext i grått. Sida-vid-sida-visning visar båda versionerna parallellt med matchande rader justerade.
Hur diff-algoritmen fungerar
Detta verktyg anvander algoritmen Langsta Gemensamma Delfolj (LCS) for att jamfora tva texter rad for rad. LCS hittar den langsta sekvensen av rader som forekommer i bada texterna i samma ordning. Rader som inte ar del av denna gemensamma delfolj markeras som tillagg (gront) eller borttagningar (rott). Rader som forekommer i bada texterna forblir oforandrade.
Till skillnad fran enkel rad-for-rad-jamforelse hanterar LCS infogandenoch borttagningar intelligent. Om du infogar en ny rad mitt i en fil identifierar algoritmen korrekt bara infogningen istallet for att markera varje efterfoljande rad som andrad. Detta producerar rena, lasbara diffar aven for filer med manga andringar.
Hur du använder detta verktyg
Klistra in eller skriv in texterna i de två fälten (original och modifierad). Verktyget markerar omedelbart skillnaderna med färgkodning. Växla mellan unified och sida-vid-sida-visning. Du kan ladda upp filer direkt och kopiera den resulterande diffen som text eller HTML. Stöder alla textformat: kod, prosa, konfigurationsfiler, CSV-data.
Vanliga anvandningsomraden for textjamforelse
- Jamfora tva versioner av kallkod eller konfigurationsfiler.
- Kontrollera vad som andrats mellan dokumentrevisioner.
- Verifiera att en datamigrering eller transformation bevarade innehallet korrekt.
- Felsoka API-svar genom att jamfora forvantad mot faktisk utdata.
- Granska databasschema-andringar innan migrationer tillampas.
Tips for effektiv diff-anvandning
Nar du jamfor kod, normalisera formateringen forst -- olika indragningsstilar kan skapa brus som doljer verkliga andringar. Sortera JSON-nycklar alfabetiskt innan du jamfor API-svar. For mycket stora filer, overvag att dela upp jamforelsen i sektioner for att gora diffen enklare att granska.
I professionella utvecklingsarbetsfloden ar diff-granskning en nyckeldelav kodgranskning. Varje pull request pa GitHub, GitLab och Bitbucket visar en diff av de foresalagna andringarna. Att lara sig lasa diffar snabbt och upptacka potentiella problem ar en av de mest vardefulala fardigheterna en utvecklare kan bygga.
Vanliga frågor
Hur fungerar diff-algoritmen?
De flesta diff-verktyg använder Longest Common Subsequence (LCS)-algoritmen eller Myers diff-algoritm. LCS hittar den längsta sekvensen av element som finns i båda texterna i ordning, och allt som inte finns i LCS markeras som ändring. Myers-algoritmen (använd av Git) optimerar detta genom att hitta det kortaste redigeringsskriptet — den minimala uppsättningen infogningar och borttagningar för att omvandla text A till text B.
Kan jag jämföra binära filer?
Denna textbaserade diff-kontroll fungerar med alla textformat men inte med binära filer som bilder, PDF-filer eller kompilerade program. För binära filer behöver du specialiserade verktyg: vimdiff eller diff med --binary för hex-jämförelse, eller dedikerade verktyg som Beyond Compare eller Kaleidoscope som stöder bild- och PDF-jämförelse.