Diff-tjek til tekst

Sammenlign to tekster eller kodestykker linje for linje. Tilføjede, fjernede og ændrede linjer fremhæves, helt ned til de præcise ord, der er forskellige.

Kører i din browserIngen tilmeldingIntet uploades

Indsæt tekst i begge felter for at se forskellene.

Sådan bruger du Diff-tjek til tekst

  1. Indsæt den oprindelige tekst til venstre og den ændrede tekst til højre, eller åbn to filer.
  2. Sammenligningen opdateres, mens du skriver. Vælg visningen Side om side eller Samlet.
  3. Sæt flueben i Ignorér mellemrum, Ignorér store/små bogstaver eller Ignorér tomme linjer for at skjule støj som ny indrykning.
  4. Brug Skjul uændrede for at fokusere på ændringerne med tre linjers kontekst omkring hver.
  5. Klik på Kopiér som patch eller Download .diff for at få et standard unified diff, som du kan anvende med git apply eller patch.

Sådan fungerer dette diff-tjek

Værktøjet deler begge input op i linjer og kører Myers' diff-algoritme, den samme O(ND)-algoritme, som git diff og GNU diff bruger. Den finder den korteste række af indsættelser og sletninger, der gør originalen til den ændrede tekst, så resultatet viser færrest mulige ændrede linjer. Identiske linjer i starten og slutningen springes først over, hvilket gør sammenligninger af filer med tusindvis af linjer næsten øjeblikkelige.

Når en fjernet linje og en tilføjet linje står ved siden af hinanden, parres de som en ændret linje og sammenlignes igen ord for ord. De ord, der faktisk er ændret, fremhæves kraftigere, så en omdøbt variabel eller et redigeret tal springer i øjnene i en lang linje.

Side om side vs. samlet visning

Side om side placerer originalen til venstre og den nye version til højre med linjenumre for begge. Det er den nemmeste visning til gennemgang af tekst, konfigurationsfiler og små kodeændringer. Samlet visning fletter fjernede (-) og tilføjede (+) linjer i én kolonne, det format, som kodegennemgangsværktøjer og patchfiler bruger.

Unified diff-formatet (patch)

Den eksporterede patch følger diff -u-formatet: en ---/+++-header og derefter hunks, der starter med @@ -l,s +l,s @@, hvor l er det første linjenummer og s antallet af linjer i hunken i hver fil. Hver hunk indeholder tre linjers uændret kontekst, så den kan anvendes med patch -p0 eller git apply, selv hvis linjer i nærheden er flyttet.

Hvornår du skal bruge ignorér-indstillingerne

  • Ignorér mellemrum behandler linjer som ens, hvis de kun adskiller sig i mellemrum eller tabulatorer. Brug det, efter du har indrykket kode igen eller skiftet tabulatorer til mellemrum.
  • Ignorér store/små bogstaver er praktisk til SQL, HTML og logfiler, hvor store og små bogstaver ikke betyder noget.
  • Ignorér tomme linjer skjuler linjer, der kun er tilføjet eller fjernet som luft.

Ofte stillede spørgsmål

Bliver min tekst uploadet nogen steder?
Nej. Sammenligningen kører udelukkende i din browser med JavaScript. Intet af det, du indsætter, sendes til en server, så du trygt kan sammenligne privat kode, kontrakter eller konfigurationsfiler.
Hvor store må teksterne være?
Filer med titusindvis af linjer sammenlignes på langt under et sekund på en typisk bærbar. Fordi algoritmens omkostning vokser med antallet af forskelle, tager to enorme, helt forskellige filer længst tid.
Kan jeg sammenligne to filer i stedet for at indsætte tekst?
Ja. Brug knapperne Åbn fil over hvert felt til at indlæse en lokal fil. Filen læses af din browser og uploades aldrig.
Hvorfor vises en linje som fjernet og tilføjet i stedet for ændret?
Linjer parres kun som “ændret”, når en blok af fjernede linjer står lige ved siden af en blok af tilføjede linjer. Hvis de to linjer har meget lidt tekst til fælles, springes fremhævningen på ordniveau over, fordi den ville være mere forvirrende end at vise hele linjen som ændret.
Hvordan sammenligner jeg JSON-objekter?
Brug værktøjet JSON Diff. Det sammenligner den parsede struktur, så nøglerækkefølge og formatering ikke giver falske forskelle, og det viser de præcise stier, der er ændret.

Relaterede værktøjer