Programmører, webudviklere og selvforfattere skal ofte sammenligne forskellige versioner af den samme kode eller tekst for at holde styr på ændringer. En effektiv måde at gøre dette på er med et diff-værktøj - et program, der sammenligner filer eller mapper, viser forskelle mellem dem og hjælper dig med at oprette en ny fil ved at slå sammen eller patchere sine versioner. Generelt kan du sammenligne filer på Linux enten med et kommandolinjeværktøj eller ved hjælp af en selvstændig applikation.

Diff, colordiff og wdiff

Diff

Kommandolinjeværktøjet kaldet diff er en del af "diffutils" -pakken, der findes i lagrene af alle større Linux-distributioner. Det er et simpelt værktøj, der sammenligner filer line for line og kan også sammenligne filer i to mapper. Hvis udvalgte filer er identiske, vil diff ikke udskrive nogen output, og du kan tilpasse sine muligheder (for eksempel at ignorere hvidt mellemrum eller bogstav).

Den generelle syntaks er

 diff-optagelse filnavn1 filnavn2 

Resultaterne kan vises i to kolonner med -y eller --side-by-side . Få den fulde liste over diff-muligheder ved at skrive:

 diff - help 

Pakken "diffutils" indeholder også diff3 - et værktøj der kan sammenligne tre filer og slå sammen tre versioner af en fil. En god guide til at få mest muligt ud af diff findes på den officielle hjemmeside.

Colordiff

Colordiff er teknisk en "wrapper" eller et script, der ændrer output fra diff ved at farve det efter dine præferencer i konfigurationsfilen ("/ etc / colordiffrc" eller "/home/user/.colordiffrc"). Colordiff-pakken er tilgængelig i de fleste distributioners repositorier.

Colordiff har de samme muligheder som diff, og du kan bruge det enten direkte ved at skrive:

 colordiff -optioner filnavn1.txt filnavn2.txt 

eller ved at pipere output fra diff til det:

 diff -u filnavn1.txt filnavn2.txt | colordiff 

Wdiff

Et andet lignende og lidt mere specialiseret værktøj er wdiff som kan sammenligne filer ord per ord (det definerer et ord som noget omgivet af hvidt rum). Wdiff kan ignorere sag ( -i ), give statistik ( -s ) om ændringer i givne filer og understrege forskelle med formatering ( -p ). Du kan også kombinere colordiff og wdiff for at få et farvekodet overblik over ordforskelle mellem filer:

 wdiff -n filnavn1.txt filnavn2.txt | colordiff 

Bemærk, at du skal indtaste hele stien, hvis filer ikke er i den aktive mappe. For at finde ud af mere om wdiff, besøg den officielle hjemmeside.

Diff tilstande i Vim og Emacs

Populære tekstredaktører Vim og Emacs har begge en indbygget diff-tilstand. For at aktivere det i Vim kan du starte programmet med vimdiff kommandoen og tilføje op til fire filer for at sammenligne:

 vimdiff file1 file2 [file3 [file4]] 

Vim åbner hver fil i et separat vindue og fremhæver forskellene. Du kan konfigurere hvordan du opdeler hvert vindue for et bedre overblik.

Emacs-brugere kan vælge imellem en diff-udvidelse (kaldet "main mode") eller Ediff, en lidt mere avanceret tilstand, som gør det muligt at ændre interaktive filer interaktivt. På samme måde som Vim kan Emacs vise filer i separate vinduer side om side og fremhæve forskellene. Du kan også bruge den til at fusionere filer, og det fungerer også med komprimerede filer.

Begge tekstredaktører har en relativt kompleks syntaks, der kræver en vis læring, men det betaler sig, da de er meget kraftfulde og omhyggeligt tilpasselige.

KDiff3

Kdiff3 er en grafisk frontend til diff, hvilket betyder, at den er afhængig af diff og tilbyder alle sine muligheder. Det lader dig sammenligne to filer til en basisfil, og fusionere, opdele og tilslutte hele mapper, filer eller bare udvalgte dele af teksten. Kdiff3 integrerer godt med KDE (understøtter Dolphin service menuer), men det vil fungere på alle Linux distributioner, Windows og Mac OS X. Dialogboksen "Settings -> Configure Kdiff3" lader dig indstille parametre til sammenligning af filer i mapper (efter dato, størrelse, binær sammenligning eller fuld indhold) og mellem filer (ignorere tilfælde, tal og hvidt rum). Du kan skifte ordindpakning og linjenumre for bedre oversigt og justere farveindstillinger for at markere forskellene.

Det store ved Kdiff3 er, at det lader dig indsætte tekst fra enhver fil direkte i hovedvinduet, hvilket eliminerer behovet for at oprette filer, når du bare vil sammenligne tekst "on-the-fly". En detaljeret Kdiff3 håndbog er tilgængelig online.

Diffus

Ved første øjekast virker det simpelt, men Diffuse er lige så kraftigt som andre værktøjer på denne liste. Det kan sammenligne et ubegrænset antal filer i en side-til-side visning og opsummere forskellene. Du kan redigere filer direkte fra Diffuse og udføre fusioner og linje matching. Den understøtter også (begrænset) syntaksfremhævning og tilbyder integration med flere versionsstyringssystemer - herunder Git, Mercurial og Subversion - for at hjælpe dig med at holde filer synkroniseret. Diffuse værker på Linux, Windows og Mac OS X, og du kan downloade installationspakkerne fra projektets hjemmeside.

Diffmerge

Denne applikation virker på Linux, Windows og OS X, integrerer godt med Windows Stifinder, og tilbyder installationspakker til nogle distributioner. Du kan redigere filer inden for Diffmerge, automatisk fusionere filversioner og eksportere forskelle til en ny fil. Det kan sammenligne op til tre filer og to mapper og vise, om filerne er identiske, hvilket kan være nyttigt, når du kontrollerer, om en rsync-backup blev udført korrekt.

Indstillingsdialogen giver dig mulighed for at definere brugerdefinerede regler til håndtering af forskellige filtyper. Diffmerge er gratis, men det vil lejlighedsvis bede om en betalt registreringsnøgle. Dette kan slå nogle brugere væk heldigvis kan de vælge et andet værktøj fra denne liste, da de alle tilbyder mere eller mindre de samme muligheder.

meld

Meld pakker funktioner fra andre diff værktøjer til en Python-bygget interface. Du kan downloade kilden og Windows-versionen og finde pakken i lageret, hvis du er en Ubuntu-, Fedora- eller SUSE-bruger. En cool ting om Meld er, at du ikke behøver at installere det - bare kør det eksekverbare og brug det som en bærbar app.

Meld understøtter filredigering, filtrering med regulære udtryk, sammenligning og sammenlægning af tre filer og sammenligning af to eller tre mapper og deres indhold og giver også en nyttig visualisering af forskelle ved hjælp af pile og farvekodning. Hvis du bruger et versionsstyringssystem som Git, Mercurial eller SVN, kan Meld administrere dine filer, kontrollere for ændringer og udføre begæringer og opdateringer. Meld opdateres jævnligt, så vi kan håbe på nye funktioner i fremtidige versioner.

Andre muligheder

Hvis du ikke har lyst til at installere en ny applikation til dette formål, og du ikke har brug for avancerede sammenligninger af filer, kan du prøve nogle af de mange online diff-værktøjer, der er gratis og kun kræver en webbrowser.

Bruger du et diff-værktøj, der ikke er på denne liste? Fortæl os om det i kommentarerne.

Billedkredit: Teaser billedkilde