Afgelopen jaar zijn we bij Auger gestart met Git. Deze tool stelt ons in staat om goed bij te houden welke veranderingen/wijzigingen er aan software wordt gedaan. Dat handig voor zowel managers als ontwikkelaars

Wij zijn tot zo ver erg enthousiast over Git en dat licht ik graag toe in deze blog. Hier kort een aantal voordelen:

Helder inzicht in wat je releases bevatten

Bij Git heb je een hoofdtak / hoofdlijn waarin de opgeleverde versie van het product staat. Alle nieuwe functionaliteit kan ontwikkeld worden in aparte productielijnen. Als de nieuwe functie eenmaal afgerond is, kan deze in één keer worden ingevoegd in de hoofdtak. Hiermee is een stuk kwaliteit gewaarborgd en is er op project management niveau zicht op wat er opgeleverd wordt in een versie en wat er uitgelaten wordt. Iets wat nog niet afgerond is hoeft nog niet in het product te verschijnen.

Makkelijk werken als ontwikkelaar
Voor ontwikkelaars biedt Git ook een aantal voordelen. Het werkt heel snel en dat alleen is al een reden om het te gebruiken. Toch is er meer. Je kunt makkelijk wijzigingen opsplitsen in losse delen (bijvoorbeeld twee gemaakte wijzigingen in hetzelfde bestand).

Ook kun je heel makkelijk achteraf correcties maken, als je bent vergeten iets toe te voegen aan een vorige wijziging. Tot slot kan Git je meer vertellen over de code van het project, hoe die ontwikkeld is en hoe functies verplaatst zijn door bestanden heen.

Schaalbaar
Bij het maken van Git had uitvinder Linus Torvalds maar één doel: het moest werken voor zijn project; de Linux kernel. Dit project ontvangt meer dan 4000 bijdragen per maand en werkt wereldwijd met allerlei subteams die onderling ook onafhankelijk van de rest programmacode kunnen uitwisselen. Met dit beeld in het achterhoofd is Git ontworpen en dat maakt het heel geschikt voor grote software projecten.

Onze ervaringen
Wij hebben inmiddels onze subversion repositories overgezet naar Git. Aanvankelijk was het gebruik van Git wennen, omdat de werkwijze van Git anders is dan die van subversion. Voor Windows zijn we eerst gestart met TortoiseGit en later bleek GitExtensions beter te werken. Omdat de werkwijze van Git anders is, is het handig een interface te gebruiken die hiervoor gemaakt is.

GitExtensions zelf behoeft nog wat verbeteringen, het product is nog niet af. Gelukkig is er echter een bugtracker, waar we zelf ook al de nodige foutjes in gerapporteerd hebben. Ook is GitExtensions – hoe kan ook anders – gewoon een Visual Studio project wat bijgehouden wordt in Git. Wie eenmaal Git kan gebruiken, kan ook verbeteringen maken aan GitExtensions. En zo is de cirkel rond!

Zelf aan de slag
Om met Git aan de slag te gaan heb je geen server nodig. Je kunt op je eigen systeem van een bestaande map een Git map maken. Later kun je deze wijzigingen opsturen naar een gedeelde repository op een aangekoppelde netwerkschijf, of een Git server die via SSH dan wel HTTP benaderd kan worden. Voor Windows is het laatste het makkelijkste.

De HTTP server kan met Apache/PHP ingericht worden via de cgi backend en gitphp, of op IIS 7.5 met .NET 4 dankzij git-dot-aspx en Git Web Access. Met deze projecten is een goede Git server ook eenvoudig binnen handbereik voor .NET ontwikkelaars.