Programmeurs, webontwikkelaars en zelfs schrijvers moeten vaak verschillende versies van dezelfde code of tekst vergelijken om wijzigingen bij te houden. Een efficiënte manier om dit te doen, is met een diff-tool: een toepassing die bestanden of mappen vergelijkt, verschillen laat zien en helpt bij het maken van een nieuw bestand door de versies samen te voegen of te patchen. Over het algemeen kunt u bestanden op Linux vergelijken met een opdrachtregelprogramma of met een zelfstandige toepassing.

Diff, colordiff en wdiff

diff

Het opdrachtregelprogramma met de naam diff is een onderdeel van het "diffutils" -pakket dat aanwezig is in de opslagplaatsen van elke grote Linux-distributie. Het is een eenvoudige tool die bestanden regel voor regel vergelijkt en ook bestanden in twee mappen kan vergelijken. Als geselecteerde bestanden identiek zijn, zal diff geen enkele uitvoer afdrukken en kunt u de opties ervan aanpassen (bijvoorbeeld om witruimte of briefgevallen te negeren).

De algemene syntaxis is

 diff -option bestandsnaam1 bestandsnaam2 

De resultaten kunnen in twee kolommen worden weergegeven met de optie -y of - --side-by-side . Krijg de volledige lijst met diff-opties door te typen:

 diff - help 

Het pakket "diffutils" bevat ook diff3 - een tool die drie bestanden kan vergelijken en drie versies van een bestand kan samenvoegen. Een goede handleiding om het beste uit diff te halen, is te vinden op de officiële website.

colordiff

Colordiff is technisch gezien een "wrapper" of een script dat de uitvoer van diff aanpast door het in overeenstemming met uw voorkeuren in het configuratiebestand ("/ etc / colordiffrc" of "/home/user/.colordiffrc") in te kleuren. Het pakket colordiff is beschikbaar in de repositories van de meeste distributies.

Colordiff heeft dezelfde opties als diff, en je kunt het direct gebruiken door te typen:

 colordiff -options filename1.txt filename2.txt 

of door er de output van diff naar toe te leiden:

 diff -u filename1.txt bestandsnaam2.txt | colordiff 

wdiff

Een ander vergelijkbaar en een beetje meer gespecialiseerd hulpmiddel is wdiff dat bestanden woord per woord kan vergelijken (het definieert een woord als alles omgeven door witte ruimte). Wdiff kan case ( -i ) negeren, statistieken ( -s ) leveren over wijzigingen in gegeven bestanden en de nadruk leggen op verschillen met opmaak ( -p ). Je kunt ook colordiff en wdiff combineren om een ​​kleurgecodeerd overzicht van woordverschillen tussen bestanden te krijgen:

 wdiff -n filename1.txt filename2.txt | colordiff 

Merk op dat u het volledige pad moet invoeren als de bestanden zich niet in de actieve map bevinden. Ga voor meer informatie over wdiff naar de officiële website.

Diff-modi in Vim en Emacs

Populaire teksteditors Vim en Emacs hebben beide een ingebouwde diff-modus. Om het in Vim te activeren, kunt u het programma starten met de opdracht vimdiff en maximaal vier bestanden toevoegen om te vergelijken:

 vimdiff file1 file2 [file3 [file4]] 

Vim opent elk bestand in een apart venster en benadrukt de verschillen. U kunt configureren hoe elk venster moet worden gesplitst voor een beter overzicht.

Emacs-gebruikers kunnen kiezen tussen een diff-extensie ("major-modus" genoemd) of Ediff, een iets geavanceerdere modus waarmee u vergelijkende bestanden interactief kunt wijzigen. Net als Vim kan Emacs bestanden in afzonderlijke vensters naast elkaar weergeven en de verschillen benadrukken. Je kunt het ook gebruiken om bestanden samen te voegen, en het werkt ook met gecomprimeerde bestanden.

Beide teksteditors hebben een relatief complexe syntaxis die wat leren vereist, maar het loont omdat ze erg krachtig en volledig aanpasbaar zijn.

kdiff3

Kdiff3 is een grafische frontend voor diff, wat betekent dat het op diff is gebaseerd en al zijn opties biedt. Hiermee kunt u twee bestanden vergelijken met een basisbestand en samenvoegen, splitsen en aansluiten bij hele mappen, bestanden of alleen geselecteerde delen van tekst. Kdiff3 kan goed worden geïntegreerd met KDE (ondersteunt Dolphin-servicemenu's), maar het werkt op alle Linux-distributies, Windows en Mac OS X. In het dialoogvenster "Instellingen -> Kdiff3 configureren" kunt u parameters instellen voor bestandsvergelijking in mappen (op datum, grootte, binaire vergelijking of volledige inhoud) en tussen bestanden (negeer hoofdletters, cijfers en witruimte). U kunt tekstomloop en regelnummers wisselen voor een beter overzicht en de kleurinstellingen aanpassen om de verschillen te markeren.

Het leuke van Kdiff3 is dat je tekst van elk bestand rechtstreeks in het hoofdvenster kunt plakken, zodat je geen bestanden meer hoeft te maken wanneer je de tekst "on-the-fly" wilt vergelijken. Een gedetailleerd Kdiff3-handboek is online beschikbaar.

Diffuus

Op het eerste gezicht lijkt het eenvoudig, maar Diffuse is even krachtig als andere tools op deze lijst. Het kan een onbeperkt aantal bestanden in een zij-aan-zij weergave vergelijken en de verschillen samenvatten. U kunt bestanden rechtstreeks vanuit Diffuse bewerken en samenvoegingen en lijnafstemming uitvoeren. Het ondersteunt ook (beperkte) syntaxisaccentuering en biedt integratie met verschillende versiecontrolesystemen - inclusief Git, Mercurial en Subversion - om bestanden synchroon te houden. Diffuus werkt op Linux, Windows en Mac OS X en u kunt de installatiepakketten downloaden van de projectwebsite.

DiffMerge

Deze applicatie werkt op Linux, Windows en OS X, is goed te integreren met Windows Verkenner en biedt installatiepakketten voor sommige distributies. U kunt bestanden in Diffmerge bewerken, automatisch bestandsversies samenvoegen en verschillen exporteren naar een nieuw bestand. Het kan maximaal drie bestanden en twee mappen vergelijken en weergeven of de bestanden identiek zijn, wat handig kan zijn bij het controleren of een rsync-back-up correct is uitgevoerd.

In het instellingenvenster kunt u aangepaste regels definiëren voor het omgaan met verschillende bestandstypes. Diffmerge is gratis, maar het zal af en toe om een ​​betaalde registratiesleutel vragen. Dit kan sommige gebruikers afwijzen; Gelukkig kunnen ze een ander hulpmiddel uit deze lijst kiezen, omdat ze allemaal min of meer dezelfde opties bieden.

roemen

Meld pakt functies van andere diff-tools in een door Python gebouwde interface. Je kunt de bron en de Windows-versie downloaden en het pakket in de repositories vinden als je een Ubuntu, Fedora of SUSE-gebruiker bent. Een cool ding van Meld is dat je het niet hoeft te installeren - voer gewoon het uitvoerbare bestand uit en gebruik het als een draagbare app.

Meld ondersteunt het bewerken van bestanden, het filteren met reguliere expressies, het vergelijken en samenvoegen van drie bestanden, en het vergelijken van twee of drie mappen en hun inhoud, en biedt ook nuttige visualisatie van verschillen met behulp van pijlen en kleurcodering. Als u een versiebeheersysteem zoals Git, Mercurial of SVN gebruikt, kan Meld uw bestanden beheren, controleren op wijzigingen en commits en updates uitvoeren. Meld wordt regelmatig bijgewerkt, dus we kunnen hopen op nieuwe functies in toekomstige versies.

Andere opties

Als u geen zin heeft om een ​​nieuwe toepassing voor dit doel te installeren en u geen geavanceerde bestandsvergelijkingsfuncties nodig hebt, kunt u enkele van de vele online diff-hulpprogramma's proberen die gratis zijn en alleen een webbrowser nodig hebben.

Gebruik je een diff-tool die niet in deze lijst voorkomt? Vertel het ons in de comments.

Afbeeldingscreditering: bron van teaserafbeelding