Nieuw versiebeheer systeem

Onlangs ben ik op zoek gegaan naar een beter versiebeheer system voor m’n hobby- en Vinit projecten. Zelf ben ik altijd behoorlijk tevreden geweest over Visual SourceSafe van Microsoft, hoewel niet iedereen die mening deelt (Coding Horror & High Programmer) Zelf ben ik van mening dat zo lang iets voldoet aan de eisen en wensen die je hebt dat het goed genoeg is.

Omdat SourceSafe toch wel oud begint te worden ben ik vorig jaar eens gaan kijken naar Subversion (SVN), omdat iedereen daar wel enthousiast over is/was. Na enkele projecten in SVN te hebben gezet lijkt het inderdaad wel een prima vervanger. Nadeel dat ik ondervond was dat het browsen in de verkenner enorm werd vertraagd. Tevens heb ik nogal eens ruzie bij het verwijderen, verplaatsen of hernoemen van bestanden. Dit zal allemaal vast kunnen worden ingesteld en in de handleiding staat vast ook goed uitgelegd hoe je met SVN moet werken, maar dat heb ik allemaal niet gedaan. Nog een nadeel van SVN vind ik dat in iedere map een .svn-map wordt aangemaakt. Door al deze nadelen is SVN geen geschikte keus voor versiebeheer systeem voor mij.

Op het werk gebruik ik graag Team Foundation Server (TFS) van Microsoft. Dit is een prachtig pakket, enorm uitgebreid, waardoor er een heel team mee kan werken van ontwikkelaar tot tester tot project manager. Voor mij is hier het grootste nadeel dat het (veel) geld kost. Voor een middel grote organisatie is het een klein bedrag als je kijkt wat je er voor terug krijgt, maar het is te veel voor mijn portemonee. Tevens zijn de systeem eisen redelijk hoog, zeker als je alleen maar het versiebeheer gedeelte van TFS wilt gaan gebruiken. Dan heb je eigenlijk een tank om een mug dood te schieten. Jammergenoeg valt TFS dus ook af.

De laatste tijd is er een opwaartse trend voor decentrale versiebeheer systemen (DVCS). De meest bekende voorbeelden hiervan zijn Git en Mercurial, maar er zijn er veel meer. Omdat Git toch wel de populairste van de twee is, heb ik deze eerst uitgeprobeerd.

Alle acties van Git dienen met de command prompt te worden gedaan. Tegenwoordig zijn er ook wel Tortoise extensies voor Git wat het geheel wat visueler maakt. Het installeren en configureren van Git gaat redelijk goed. Zeker met de vele tutorials die zijn te vinden op het web. De mooiste die ik heb gevonden is deze: LostTechies. Deze tutorial bestaat uit 3 delen en beschrijft de belangrijkste onderdelen van Git. Na het installeren en configureren van Git moest ik ook nog een server inrichten om m’n bronbestanden toch ook op een centrale plek op te kunnen slaan. Er kan voor worden gekozen om dit op GitHub te doen. Je kunt daar gratis publieke repositories aanmaken, wanneer je private repositories wilt, dan moet er een klein bedrag worden betaald. Hoewel het modern is om je data in de cloud op te slaan vind ik het toch niet prettig dat m’n broncode ergens bij iemand anders op server staat. Misschien dat ik een beetje paranoide ben, want wie wil nou mijn broncode lezen/stelen/gebruiken, maar toch. Ik vind het (nog) niet een fijn gevoel.

Het zelf opzetten van een private Git server kan ook. Er zijn veel tutorials die beschrijven hoe dit onder Linux kan worden gedaan. Aangezien ik liever geen Linux in m’n netwerk gebruik (ben een MS man en kan niet goed een Linux server beheren), was dit niet echt een optie. Ook zijn er mensen die hebben beschreven hoe je Git op een Windows server kan installeren en zo een private repository maken. Hier zitten nog wel wat haken en ogen aan. Dit alles maakte Git niet een ideale centrale opslagplaats voor m’n broncode. Wel vind ik het een mooi systeem, maar is iets te Windows onvriendelijk heb ik het idee.

Mercurial daarentegen is wel Windows vriendelijk. Het is eigenlijk eenzelfde systeem als Git, maar dan meer bericht op Windows gebruikers heb ik het idee. Om deze reden heb ik Git dan ook weer van de systemen verwijderd en nu Mercurial overal opgezet. Er is ook een Tortoise extensie voor Mercurial, maar tot nu toe heb ik alles via de command prompt gedaan.

Moet zeggen dat het installeren en configureren enorm eenvoudig is, zeker met de vele handleidingen die op het internet staan. Gebruik Mercurial nu 1 dag en ben er super tevreden mee. Uiteraard nog geen ‘moeilijke’ dingen er mee gedaan. Dat komt nog wel.

Kan het dus iedereen aanraden om een DVCS te gebruiken als Git of Mercurial.


Share