Tonen van Verschillen

Een van de meest voorkomende eisen in de ontwikkeling van projecten is om te kunnen zien wat er is veranderd. Je zou bijvoorbeeld de verschillen tussen twee herzieningen van hetzelfde bestand, of de verschillen tussen twee aparte bestanden willen bekijken. TortoiseSVN biedt een ingebouwd gereedschap genaamd TortoiseMerge om de verschillen tussen tekstbestanden te kunnen bekijken. Voor het vergelijken van afbeeldingen heeft TortoiseSVN ook een gereedschap genaamd TortoiseIDiff. Natuurlijk kun je hier ook je eigen favoriete programma voor gebruiken als je wilt.

Bestandsverschillen

Lokale wijzigingen

Als je wilt bekijken welke veranderingen jij gedaan hebt in je werkkopie, gebruik je simpelweg het context menu van de verkenner en selecteert TortoiseSVNVerschil.

Verschil met een andere tak/label

Als je wilt zien wat er veranderd is in de basislijn (als je aan een tak werkt) of in een specifieke tak (als je werkt op de basislijn), kun je gebruik maken van het context menu van de verkenner. Je houdt gewoon de Shift-toets ingedrukt terwijl je met de rechtermuisknop op het bestand klikt. Vervolgens selecteer je TortoiseSVNVerschil met URL. In het dialoogvenster dat volgt, geef je de URL in het archief aan waarmee je het lokale bestand wilt vergelijken.

Je kunt ook gebruik maken van de archief-verkenner. Selecteer hier twee bomen, twee labels, of een tak/label en de basislijn om te vergelijken. Via het daar aanwezige contextmenu kun je ze vergelijken met Vergelijk revisies. Lees meer in de paragraaf met de naam “Vergelijken van mappen”.

Verschil met een vorige revisie

Als je het verschil wilt zien tussen een bepaalde revisie en je werkkopie, gebruik je het Logboek dialoogvenster, selecteer je de gewenste revisie, en kies je vervolgens Vergelijk met werkkopie uit het contextmenu.

Als je het verschil wilt zien tussen de laatst vastgelegde revisie en je werkkopie, ervan uitgaande dat de werkkopie niet is gewijzigd, klik je met de rechtermuisknop op het bestand. Vervolgens selecteer je TortoiseSVNVergelijk met vorige revisie. Dit zal een vergelijking uitvoeren tussen de revisie voor de laatste-vastleg-datum (zoals vastgelegd in je werkkopie) en de werkbasis. Deze toont je de laatste wijziging uitgevoerd op het bestand welke nodig is om deze in de staat te brengen welke je in je werkkopie ziet. Het zal geen wijzigingen tonen die nieuwer zijn dan je werkkopie.

Verschil tussen twee eerdere revisies

Als je het verschil wil zien tussen twee revisies die al vastgelegd zijn, gebruik dan het Revisie Log dialoog en selecteer de twee revisies die je wil vergelijken (met behulp van de gebruikelijke Ctrl-wijziger). Selecteer daarna Vergelijk revisies uit het contextmenu.

Als je dit gedaan hebt vanuit het revisie log van een map, verschijnt er een Vergelijk Revisies dialoog welke een lijst toont met gewijzigde bestanden uit deze map. Lees meer in de paragraaf met de naam “Vergelijken van mappen”.

Alle wijzigingen die zijn gemaakt in een vastlegging

Wanneer je de wijzigingen van alle bestanden in een bepaalde revisie in één weergave wil zien, kun je hier de Unified-Diff uitvoer (GNU patch formaat) voor gebruiken. Deze toont alleen de wijzigingen met een aantal regels voor de context. Het is moeilijker te lezen als een visuele vergelijking, maar het toont alle wijzigingen bij elkaar. Selecteer vanuit het revisie log dialoog de gewenste revisie en selecteer dan Toon verschillen als unified diff uit the contextmenu.

Verschillen tussen bestanden

Als je de verschillen tussen twee verschillende bestanden wil bekijken, dan kun je dat rechtstreeks via de verkenner doen door beide bestanden te selecteren (gebruik makend van de standaard Ctrl-wijziger). Selecteer daarna uit het verkenner contextmenu TortoiseSVNVerschil.

If the files to compare are not located in the same folder, use the command TortoiseSVNDiff later to mark the first file for diffing, then browse to the second file and use TortoiseSVNDiff with "path/of/marked/file". To remove the marked file, use the command TortoiseSVNDiff later again, but hold down the Ctrl-modifier while clicking on it.

Verschil tussen een werkkopie bestand/map en een URL

Als je de verschillen wil zien tussen een bestand in je werkkopie en een bestand in een willekeurig Subversion archief, kun je dat rechtstreeks vanuit de verkenner doen door het bestand te selecteren en terwijl je de Shift ingedrukt houdt met de rechter muisknop erop klikt zodat het contextmenu verschijnt. Selecteer dan TortoiseSVNVerschil met URL. Je kan hetzelfde doen met een folder uit je werkkopie.TortoiseMerge toont deze verschillen op dezelfde manier als patch bestanden worden getoond - een lijst met gewijzigde bestanden die je in één keer kan zien.

Verschil met verklaringen

Als je niet alleen de verschillen, maar ook de auteur, de revisie en de wijzigingen die gemaakt zijn wil zien, kun je de verschil en verklaar rapporten vanuit het revisie log dialoog combineren. Ga voor meer informatie naar de paragraaf met de naam “Verklaar Verschillen”.

Verschillen tussen mappen

Met de ingebouwde gereedschappen die met TortoiseSVN worden meegeleverd is het niet mogelijk om verschillen tussen map hiërarchieën te bekijken, maar als je een extern gereedschap hebt welke dat ondersteund, kun je deze hier ook voor gebruiken. In de paragraaf met de naam “Externe Verschil/Samenvoeg gereedschappen” worden een aantal gereedschappen beschreven die wij hebben gebruikt.

Als je een verschil gereedschap van een externe partij hebt geconfigureerd, kun je Shift gebruiken bij het selecteren van het Verschil commando om het alternatieve gereedschap te gebruiken. Lees de paragraaf met de naam “Externe Programma Instellingen” voor meer informatie over het configureren van alternatieve verschil gereedschappen.

Opties voor regeleinden, spaties en witregels

Gedurende de loop van een project, zou je kunnen beslissen om de regeleinden te veranderen van CRLF naar LF, of je zou het inspringen van een sectie kunnen aanpassen. Dit zal jammer genoeg een groot aantal bestanden markeren als gewijzigd, ook al is er geen verandering in de betekenis van de code. De opties hieronder helpen je om deze wijzigingen te hanteren tijdens het vergelijken en toepassen van verschillen. Je komt deze instellingen tegen in de Samenvoeg en Verklaar dialogen, maar ook bij de instellingen van TortoiseMerge.

Negeer regeleinden negeert wijzigingen die uitsluitend veroorzaakt worden door een verschil in stijl van regeleinden.

Vergelijk witregels toont alle wijzigingen in inspringen en witregels als toegevoegde/verwijderde regels.

Ignore whitespace changes excludes changes which are due solely to a change in the amount or type of whitespace, e.g. changing the indentation or changing tabs to spaces. Adding whitespace where there was none before, or removing a whitespace completely is still shown as a change.

Alle spaties en witregels negeren sluit alles uit waar alleen wijzigingen aan spaties en/of witregels zijn gemaakt.

Natuurlijk wordt elke regel met gewijzigde inhoud altijd aan het verschil toegevoegd.

Vergelijken van mappen

Afbeelding 4.28. De Vergelijk Revisies Dialoog

De Vergelijk Revisies Dialoog


Als je twee bomen selecteert in de archief verkenner, of wanneer je twee revisies van een map selecteert in het log dialoog, kun je ContextmenuVergelijk revisies.

Deze dialoog toont een lijst met alle bestanden die zijn veranderd en staat je toen om deze individueel te vergelijken of te verklaren via het context menu.

Je kan een wijzigings boom exporteren, welke handig kan zijn als je iemand anders de boomstructuur van je project wil sturen, maar daar alleen de gewijzigde bestanden in wilt hebben. Deze operatie werkt alleen op de geselecteerde bestanden, dus dien je de gewenste bestanden - meestal betekent dit alle bestanden - te selecteren en daarna ContextmenuExporteer selectie naar.... Je krijgt de vraag op welke locatie je deze wijzigingsboom wilt opslaan.

Je kan de lijst met gewijzigde bestanden ook exporteren naar een tekstbestand via Contextmenu Sla lijst van geselecteerde bestanden op in....

Als je de lijst met bestanden en de bijbehorende acties (gewijzigd, toegevoegd, verwijderd) wil exporteren, kun je dat doen via ContextmenuNaar klembord kopiëren.

Met de knop bovenaan kun je de richting waarin vergeleken wordt aanpassen. Je kan de wijzigingen zien die nodig zijn om van A naar B te komen, maar als je dat liever hebt, van B naar A.

De knoppen met de revisie nummers erop kunnen gebruikt worden om het revisie bereik te veranderen. Als je dit bereik verandert, zal de lijst met items die verschillen tussen deze twee revisies automatisch ververst worden.

Als de lijst met bestandsnamen erg lang is, kun je het zoekvak gebruiken om de lijst te reduceren tot bestandsnamen die een specifieke tekst bevatten. Bedenk hierbij dat een simpele manier van zoeken op tekst wordt gebruikt, dus als je de lijst wil beperken tot C bron bestanden, zul je moeten zoeken op .c in plaats van *.c."

Vergelijk afbeeldingen met TortoiseIDiff

Er zijn veel gereedschappen beschikbaar waarmee verschillen tussen tekst bestanden bekeken kunnen worden, inclusief onze eigen TortoiseMerge, maar vaak willen we ook kunnen zien hoe een afbeelding veranderd is. Daarom hebben we TortoiseIDiff gemaakt.

Afbeelding 4.29. De beeld-verschil viewer

De beeld-verschil viewer


TortoiseSVNVerschil uitvoeren op één van de meest voorkomende formaten voor afbeeldingen zal TortoiseIDiff starten om de verschillen tussen afbeeldingen te tonen. Standaard zullen de afbeeldingen naast elkaar worden getoond, maar je kan via het View menu of de werkbalk instellen dat ze boven elkaar getoond worden. Als je dat wilt, kun je ze zelfs over elkaar leggen en doen of je een lightbox gebruikt.

Natuurlijk kan je ook in en uit zoomen en de afbeelding verplaatsen. De afbeelding kan ook eenvoudig verplaatst worden door te slepen met de linker muisknop. Als je de optie Koppel afbeeldingsposities selecteert, dan worden de verplaats regelaars (schuifbalken, muiswiel) voor beide afbeeldingen gekoppeld.

Een afbeeldingsinformatie scherm toont details over de afbeelding, zoals de grootte in pixels, resolutie en kleurdiepte. Als dit scherm in de weg zit, gebruik dan BeeldAfbeelding Info om het te verbergen. Je krijgt dezelfde informatie in een tooltip wanneer je de muis over de titel van de afbeelding laat zweven.

Als de afbeeldingen over elkaar zijn gelegd, wordt de intensiteit van de afbeeldingen (alpha mix) bestuurd met de schuifbalk aan de linkerkant. Je kan op een willekeurige plek op de schuifbalk klikken om de mix direct te veranderen. Ook kan je de balk verschuiven om de mix interactief te veranderen.

De knop boven de schuifbalk schakelt tussen 0% mix en 100% mix. Als je dubbel klikt op de knop, zal de mix elke seconde automatisch schakelen totdat je nog een keer op de knop klikt. Dit kan handig zijn als je verschillende kleine wijzigingen zoekt.

Soms wil je een verschil zien in plaats van een mix. Je zou bijvoorbeeld van twee herzieningen van een afbeelding voor een printplaat willen zien welke paden zijn gewijzigd. Als je de alpha-mix modus uitzet, zal het verschil getoond worden als een XOR van de kleur van de pixel waarden. Ongewijzigde gebieden zullen getoond worden als wit en veranderingen zullen worden gekleurd.

Diffing Office Documents

When you want to diff non-text documents you normally have to use the software used to create the document as it understands the file format. For the commonly used Microsoft Office and Open Office suites there is indeed some support for viewing differences and TortoiseSVN includes scripts to invoke these with the right settings when you diff files with the well-known file extensions. You can check which file extensions are supported and add your own by going to TortoiseSVNSettings and clicking Advanced in the External Programs section.

Problemen met Office 2010

If you installed the Click-to-Run version of Office 2010 and you try to diff documents you may get an error message from Windows Script Host something like this: ActiveX component can't create object: word.Application. It seems you have to use the MSI-based version of Office to get the diff functionality.

Externe Verschil/Samenvoeg gereedschappen

Als de gereedschappen die wij aanbieden niet doen wat je nodig hebt, kun je één van de vele beschikbare open-source of commerciële programma’s gebruiken. Iedereen heeft zo zijn eigen favoriet, en deze lijst is verre van compleet, maar hier zijn er een aantal die je zou kunnen overwegen:

WinMerge

WinMerge is a great open-source diff tool which can also handle directories.

Perforce Merge

Perforce is a commercial RCS, but you can download the diff/merge tool for free. Get more information from Perforce.

KDiff3

KDiff3 is een gratis verschil gereedschap welke ook mappen kan vergelijken. Je kan het hier downloaden.

SourceGear DiffMerge

SourceGear Vault is a commercial RCS, but you can download the diff/merge tool for free. Get more information from SourceGear.

ExamDiff

ExamDiff Standard is freeware. Het kan omgaan met bestanden, maar niet met mappen. ExamDiff Pro is shareware en voegt een aantal ‘goodies’ toe waaronder het vergelijken van mappen en een bewerken functionaliteit. Beide smaken, versie 3.2 en hoger, kunnen omgaan met unicode. Je kan ze downloaden van PrestoSoft.

Beyond Compare

Similar to ExamDiff Pro, this is an excellent shareware diff tool which can handle directory diffs and unicode. Download it from Scooter Software.

Araxis Merge

Araxis Merge is a useful commercial tool for diff and merging both files and folders. It does three-way comparison in merges and has synchronization links to use if you've changed the order of functions. Download it from Araxis.

Lees de paragraaf met de naam “Externe Programma Instellingen” voor informatie over het gebruiken van deze gereedschappen binnen TortoiseSVN."