Textjämförelse (Diff Checker)

Jämför två texter eller kodsnuttar rad för rad. Tillagda, borttagna och ändrade rader markeras, ända ner till de exakta ord som skiljer sig.

Körs i din webbläsareIngen registreringInget laddas upp

Klistra in text i båda rutorna för att se skillnaderna.

Så använder du Textjämförelse (Diff Checker)

  1. Klistra in originaltexten till vänster och den ändrade texten till höger, eller öppna två filer.
  2. Jämförelsen uppdateras medan du skriver. Välj vyn Sida vid sida eller Enhetlig.
  3. Kryssa i Ignorera blanksteg, Ignorera skiftläge eller Ignorera tomma rader för att dölja brus som ändrad indentering.
  4. Använd Dölj oförändrade för att fokusera på ändringarna med tre rader kontext runt varje.
  5. Klicka på Kopiera som patch eller Ladda ner .diff för att få en vanlig unified diff som du kan applicera med git apply eller patch.

Så fungerar diff-verktyget

Verktyget delar upp båda texterna i rader och kör Myers differensalgoritm, samma O(ND)-algoritm som används av git diff och GNU diff. Den hittar den kortaste följden av infogningar och borttagningar som förvandlar originalet till den ändrade texten, så resultatet visar så få ändrade rader som möjligt. Identiska rader i början och slutet hoppas över först, vilket gör att jämförelser av filer med tusentals rader går nästan omedelbart.

När en borttagen rad och en tillagd rad ligger intill varandra paras de ihop som en ändrad rad och jämförs igen ord för ord. De ord som faktiskt ändrats får en starkare markering, så att en omdöpt variabel eller ett ändrat tal syns tydligt även i en lång rad.

Sida vid sida eller enhetlig vy

Sida vid sida visar originalet till vänster och den nya versionen till höger, med radnummer för båda. Det är den enklaste vyn för att granska löptext, konfigurationsfiler och korta kodändringar. Den enhetliga vyn blandar borttagna (-) och tillagda (+) rader i en kolumn, det format som används av kodgranskningsverktyg och patchfiler.

Formatet unified diff (patch)

Den exporterade patchen följer formatet diff -u: ett ---/+++-huvud följt av block (hunks) som börjar med @@ -l,s +l,s @@, där l är första radnumret och s antalet rader i blocket i respektive fil. Varje block innehåller tre rader oförändrad kontext, så det kan appliceras med patch -p0 eller git apply även om närliggande rader har flyttats.

När ska du använda ignorera-alternativen?

  • Ignorera blanksteg behandlar rader som lika om de bara skiljer sig i mellanslag eller tabbar. Använd det efter att ha indenterat om kod eller bytt tabbar mot mellanslag.
  • Ignorera skiftläge är praktiskt för SQL, HTML och loggfiler där versaler och gemener inte spelar någon roll.
  • Ignorera tomma rader döljer rader som bara lagts till eller tagits bort som luft.

Vanliga frågor

Laddas min text upp någonstans?
Nej. Jämförelsen körs helt i din webbläsare med JavaScript. Inget du klistrar in skickas till en server, så du kan tryggt jämföra privat kod, avtal eller konfigurationsfiler.
Hur stora kan texterna vara?
Filer med tiotusentals rader jämförs på långt under en sekund på en vanlig laptop. Eftersom algoritmens kostnad växer med antalet skillnader tar två enorma, helt olika filer längst tid.
Kan jag jämföra två filer i stället för att klistra in?
Ja. Använd knapparna Öppna fil ovanför varje ruta för att läsa in en lokal fil. Filen läses av din webbläsare och laddas aldrig upp.
Varför visas en rad som borttagen och tillagd i stället för ändrad?
Rader paras ihop som ”ändrade” endast när ett block med borttagna rader ligger direkt intill ett block med tillagda rader. Om de två raderna har väldigt lite text gemensamt hoppas ordmarkeringen över, eftersom den skulle bli rörigare än att visa hela raden som ändrad.
Hur jämför jag JSON-objekt?
Använd verktyget JSON Diff. Det jämför den tolkade strukturen, så nyckelordning och formatering ger inga falska skillnader, och det listar exakt vilka sökvägar som ändrats.

Relaterade verktyg