Subversion: versiebeheer voor web designers
Wat is Subversion/SVN
Subversion is een versiebeheersysteem dat door heel wat webontwikkelaars en web designers gebruikt wordt om broncode te delen met andere teamleden of om een backup te nemen van deze files. Let op, Subversion is een prima middel om een backup te nemen van projecten, maar het is veel meer dan dat. Subversion laat ons immers toe om verschillende versies van ons werk te bewaren op een server en om deze versies te delen met andere mensen in een ontwikkelteam. En die mogelijkheid kan wel eens doorslaggevend zijn voor het slagen van een project.
Zelfs wanneer je een freelancer of student bent die alleen aan een project werkt, dan nog is Subversion een onmisbaar hulpmiddel om je werk te bewaren. Een voorbeeld: stel dat je zoals ik beschikt over een desktop PC of iMac waar je het meeste van je webdesign werk op doet.
Wanneer je echter op een ander systeem zoals je laptop wil verder werken, of wanneer je je in het buitenland bevindt, dan heb je graag je laatste versie van je projecten op zak. Subversion doet exact dat en is niet beperkt tot het delen van broncode zoals xHTML&CSS of PHP. Alle soorten files kunnen bewaard worden in een Subversion repository.
Twijfel je of je zo’n versiebeheersysteem wel nodig hebt? Vraag je dan eens af hoeveel keer je al eens bestanden hebt moeten kopiëren en overschrijven tussen verschillende systemen om op je laptop te kunnen verder werken. Heb je die keer per ongeluk een belangrijke versie van een bestand overschreven? Of had je net die laatste versie van die ene file niet bij de hand?
Bespaar jezelf onaangename situaties en configureer vandaag nog je Subversion repositories.
Hoe kan je starten met Subversion
Starten met SVN/Subversion is op zich niet moeilijk, maar een nieuwe leercurve is zeker niet te ontwijken om ten volle te genieten van dit formidabele systeem. Bovendien wordt je workflow er een stuk performanter op zodra je de kracht van Subversion volledig weet te benutten dus die extra tijd haal je er achteraf dubbel uit. Zelf kijk ik ook soms op tegen nieuwe leercurves, maar geloof me, deze is het 100% waard.
Begin met het lezen van basisdocumentatie waaruit de termen “repository”, “trunk”, “tags” en “branches” duidelijk moeten worden, dit is de manier waarop Subversion vaak worden ingedeeld, hoewel eender welke indeling mogelijk is. Deze Visual Guide to Version Control legt de basisconcepten ook duidelijk uit.

Kort gezegd is een repository een soort van ruimte of databank waarin al uw projecten of code kan geplaatst worden. De ruimte met de hoofdversie van uw software wordt een “trunk” genoemd. Een “branch” kan gezien worden als een afgescheiden stuk waarin aan bepaalde functionaliteit gewerkt wordt zonder dat de hoofdversie hierdoor kan stuk gaan.
Tot slot wordt een “tag” vaak aangemaakt om een bepaald punt in de ontwikkeling aan te geven, bijvoorbeeld “versie 1.2”, “versie 1.3” enzovoort. Op die manier kan makkelijk naar een bepaalde release worden teruggekeerd.
Beheer je zelf een server met Subversion (Linux, Windows of Mac) op geïnstalleerd, dan helpt volgende Cheat Sheet je een eind op weg.
Subversion clients
Het is perfect mogelijk om met Subversion te werken vanaf de command-line, maar gebruiksvriendelijk is het niet. Daarom is het veel aangenamer om met een Subversion-client te werken. Via enkele muisklikken haal je zo de laatste versie van je project binnen of bewaar je de laatste wijzigingen naar je repository, zodat jij of je team er steeds aan kunnen.
Hieronder volgt een kort overzichtje met enkele populaire SVN-clients, zowel voor Windows als voor Mac. Wij hebben zelf SmartSVN, Cornerstone en Versions reeds gebruikt en goedgekeurd. Tortoise hebben we nog niet onder de loep genomen, maar deze client springt er vooral uit omdat hij zich prima schijnt te integreren met het shellmenu in Windows.
Onze favoriete client is Cornerstone van Zennaware. Cornerstone draait enkel op Mac en springt er voor ons uit wat stabiliteit en gebruiksvriendelijkheid betreft. Versions, ook een Mac-client, komt op een nipte tweede plek, maar het voelt toch aan dat op het moment van schrijven Cornerstone stabieler draait dan Versions.
Versions (Enkel Mac)

SmartSVN (Cross Platform)

Tortoise SVN (Enkel Windows)

IDE plugins
Als je liever niet met een aparte client maar liever rechtstreeks vanuit je favoriete integrated development environment (IDE) of coding software werkt om je versies te beheren, dan bestaan er een aantal zeer handige opties. Zo gebruiken wij Dreamweaver CS4 en Subversion voor het meeste van ons webdesign werk. Voor grote PHP-projecten gebruiken we dan weer vaak een op Eclipse gebaseerde IDE. Dreamweaver CS4, Visual Studio, Zend Studio, Eclipse, ... Al deze ontwikkelomgevingen beschikken over de mogelijkheid om met subversion te werken.
Subclipse plugin voor Eclipse

Hosted subversion
Zelf hebben we een CentOS Linux-server draaien met daarop subversion geïnstalleerd. Het voordeel hiervan is dat we zelf het beheer volledig in de hand hebben en dat we dus niet gebonden zijn aan een beperkt aantal projecten, users of disk space.
Omdat niet iedereen tijd, zin of expertise genoeg heeft om een server op te zetten en Subversion te configureren bestaan er ook hosted diensten die het moeilijke werk reeds voor zich hebben genomen. Sommige van deze diensten bieden een gratis versie aan, maar dan ben je natuurlijk beperkt in het aantal users of projecten dat je mag aanmaken.
Beanstalk
Eén van de populairste hosted subversion diensten met onder andere een gratis plan voor één project en tot drie gebruikers. Enorm snel en makkelijk om op te zetten. Wij waren binnen 10 minuten up and running met Beanstalk. Een aanrader voor beginnende subversion gebruikers of voor powerusers die geen eigen server wensen te configureren en te onderhouden.

Google code - gratis voor open source projecten
Unfuddle
CVS dude
Tot slot
Het maakt niet uit of je alleen werkt of met een team van 100 mensen, Subversion verdient - wat zeg ik, veréist - een plaats in het werkproces van elke web designer. Met Subversion beschik jij (en je teamgenoten) altijd en overal over de laatste versie van je projecten. Crasht je harde schijf? Geen paniek, de laatste versie van je projecten zit nog steeds in Subversion en kan met een enkele muisklik terug worden opgevraagd.
Ik vraag me af hoe ik ooit zonder heb gewerkt.
About the author
Hi there! I'm a freelancer who can help you build a great application or website - yes, also for mobile devices. If you speak Dutch, check out my eBooks.
Hire me, whether it's to help you build your next project or to organize a workshop. I teach about web design + development in college and I'd be happy to put a workshop together for you.
You might also like:
« Previous Werk efficiënter via ROWE: Results Only Work Environment


