TortoiseSVN's mogelijkheden

Wat maakt TortoiseSVN zo'n goede Subversion client? Zie hier een korte lijst van eigenschappen.

Shell integratie

TortoiseSVN integreert naadloos in de Windows shell (i.e. de Verkenner). Dit betekent dat je kan blijven werken met de gereedschappen waar je al bekend mee bent. En je hoeft niet steeds een andere applicatie op te starten als je de versie beheer functionaliteit nodig hebt!

En daarbij komt nog dat je de Windows Verkenner niet per sé hoeft te gebruiken. TortoiseSVN's context menus werken in vele andere bestandbeheer programma's, alsook in de Bestand/Open dialoog, welke in de meeste standaard Windows applicaties aanwezig is. Je moet hierbij wel bedenken dat TortoiseSVN in eerste instantie ontwikkeld is als uitbreiding op de Windows Verkenner. Daardoor is het mogelijk dat in andere applicaties de integratie niet zo compleet is en bijvoorbeeld de overlappende pictogrammen niet zichtbaar zijn.

Overlappende pictogrammen

De status van elk bestand en folder onder versiebeheer wordt weergegeven met een klein overlappend pictogram. Op die manier kun je direct zien wat de status is van je werkkopie.

Grafische gebruikersinterface

Wanneer je de wijzigingen aan bestanden of mappen in een lijst laat zien, kun je op een revisie klikken om het commentaar voor die vastlegging te laten zien. Je kan ook een lijst met gewijzigde bestanden te zien krijgen - je hoeft alleen maar op een bestand te dubbel-klikken om precies te zien wat er veranderd is.

De vastleggen dialoog toont een lijst met alle onderdelen die toegevoegd zullen worden aan een vastlegging en elk # itemheeft een selectievakje waarmee je kunt kiezen welke je wilt toevoegen. Voor het geval je een nieuw bestand vergeten bent toe te voegen, kunnen bestanden zonder versiebeheer ook getoond worden.

Gemakkelijke toegang tot Subversion commando's

Alle Subversion commando's zijn beschikbaar via het context menu van de Verkenner. TortoiseSVN voegt zijn eigen submenu hierin.

Aangezien TortoiseSVN een Subversion client is, willen we je ook een aantal kenmerken van Subversion zelf laten zien.

Map versiebeheer

CVS houdt alleen de geschiedenis van individuele bestanden bij, maar Subversion implementeert een virtueel geversioneerd filesysteem, dat wijzigingen in de gehele folderstructuur bijhoudt. Bestanden en mappen staan beide onder versiebeheer. Het resultaat is dat er echte commando's zijn om bestanden en mappen te verplaatsen en te kopiëren.

Atomische commits

Een enkele vastleggen-actie gaat of helemaal, of helemaal niet in het archief. Hierdoor kunnen ontwikkelaars wijzigingen maken en vastleggen als logische brokken.

Geversioneerde metadata

Elk bestand en elke map hebben een onzichtbare set van properties. Je kunt elk willekeurig sleutel/waarde paar bedenken dat maar je wilt, en opslaan. Eigenschappen worden net als bestandinhoud in de tijd geversioneerd.

Keuze van netwerklagen

Subversion heeft een abstracte notie wat betreft toegang tot het archief, wat het gemakkelijk maakt voor mensen om een nieuw netwerkmechanisme te implementeren. Subversions geavanceerde netwerk server is een module voor een Apache webserver. die een afgeleide van HTTP genaamd WebDAV/DeltaV spreekt. Dit biedt Subversion een groot voordeel als het gaat om stabiliteit en interoperabiliteit, en voorziet in verschillende belangrijke eigenschappen, die ook nog eens gratis zijn: zoals onder andere authenticatie, authorisatie, netwerkdatacompressie, en bladeren in het archief. Een kleinere op zichzelfstaand Subversion serverproces is ook beschikbaar. Deze server gebruikt een eigen netwerkprotocol, die gemakkelijk over ssh getunneld kan worden.

Consistente data-afhandeling

Subversion drukt bestandsverschillen uit door middel van een binair verschilalgoritme, dat identiek werkt voor tekstbestanden (mens-leesbaar) en binaire bestanden (mens-onleesbaar). Beide typen bestanden worden op dezelfde gecomprimeerde manier in het archief opgeslagen en verschillen worden over het netwerk in beide richtingen gezonden.

Efficiënt aftakken en labelen

De kosten van aftakken en labelen hoeft niet proportioneel met de projectgrootte te zijn. Subversion maakt branches en tags door simpelweg het project te kopieren, op een manier die lijkt op een hard-link. Op deze manier nemen deze operaties een zeer kleine, constante tijd in beslag en erg weinig ruimte in de repository.