Twee mappen met elkaar vergelijken

Door 20 februari 2014Tips & Trucs

Recent wilde ik twee mappen met elkaar vergelijken om verschillen in kaart te brengen, hierbij ging het om een website die online stond en een lokale ontwikkel omgeving. In het verleden heb ik het programma WinMerge wel eens gebruikt zodoende het hier eerst mee geprobeerd. Een map met de gedownloade bestanden van de online omgeving links en de map met de lokale bestanden rechts. Tot mijn verbazing waren vrijwel alle bestanden anders! Dit bleek te komen doordat ik de bestanden van de online omgeving gedownload had en dus de “aangemaakt en gewijzigd datum” van de bestanden anders was dan de lokale bestanden. In de instellingen van WinMerge is echter enkel de optie “Ignore time differences less than 3 seconds” te vinden, de datum dient juist volledig genegeerd te worden. Op naar een ander programma!

Total Commander

Het was alweer erg lang terug dat ik dit programma gebruikt had en dus was het even mijn weg vinden, er zijn namelijk meerdere vergelijkingsopties aanwezig in Total Commander. Ik bleek de “Directory’s synchroniseren” optie nodig te hebben onder “Opdracht” in het menu. De mappen weer ingesteld en daarbij stond gelijk wat ik nodig had: “Datum negeren”!

Directory's synchroniserenIn mijn geval mochten de “Subdirectory’s” ook meegenomen worden en ging het me juist om de inhoud van de bestanden, zodoende “Op inhoud” ook aangevinkt. De vergelijken knop ingedrukt en daar kwamen de resultaten! Echter kwamen er ook hier weer verdacht veel bestanden tevoorschijn. Een bestand aangeklikt om te vergelijken en vervolgens staat er dat er geen verschillen zijn, vreemd. Wat blijkt, de bestanden van de online omgeving zijn binair anders dan de lokale bestanden doordat de online omgeving op Linux draait en ik op een Windows machine.

Unix2Dos

Na even Googlen bleek dat er een converter voor is: unix2dos en voor andersom dos2unix. Dit tooltje alle bestanden langs laten gaan en klaar was mijn gedachte, zo gezegd zo gedaan waarbij ik het volgende trucje tegen kwam (via StackOverflow):

find . -type f -exec dos2unix {} \;

Gezien het om een groot project ging duurde dit gigantisch lang en dus besloten verder te zoeken, dat moet toch makkelijker kunnen!

Als tekst vergelijken

Dat is waar ik naar opzoek ben! Na de gouden tip gekregen te hebben van een fanatieke Total Commander gebruiker (Jeroen Elias) dit uitgeprobeerd: Zoals te zien op de eerste screenshot, staat er achter “Op inhoud” een knop met twee plusjes erop, hierna komt er een venster waarin je zelf regels kan definiëren per bestandstype.

Vergelijkingsfunctie

Zet het vinkje aan en klik vervolgens op toevoegen, typ de gewenste bestandsextensie in die als tekst vergeleken moet worden (in mijn geval om php bestanden en dus heb ik hier *.php ingetypt) gevolgd door de “ok” knop.

Specificeer bestandstype

Hierna komt er weer een venstertje tevoorschijn waarin een aangepast veld ingevoerd kan worden met nog een keer een klein knopje met een plusje, daarbij dan eindelijk waar ik naar opzoek was!

Aangepaste veldenHierna de vergelijking nogmaals gedraaid met de gewenste resultaten!

Mijn slogan “Waarom moeilijk doen als het makkelijk kan?” is niet van toepassing op Total Commander. Wat een speurtocht!