Versioning tools (git & diff)

Deze week gaat het over versioning tools, dat is iets dat elke programmeur gebruikt (of zou moeten gebruiken). Ik ben ook erg benieuwd naar de tools en sites die je zelf gebruikt.

Versioning tools

Svn en met name git (van de maker van Linux) zorgen ervoor dat je versies van je werk kan bijhouden. Elke keer dat je wat werk gedaan hebt kan je dat opslaan als een nieuwe versie. Dat maakt het makkelijk om terug te gaan naar een oude versie als er bijvoorbeeld iets niet werkt. Je kan ook zien wie iets gedaan wanneer heeft, en al met al helpt het enorm met een betere workflow. Leren werken met git kost wat tijd, maar met de juiste tools is het een stuk makkelijker. Je kan eigenlijk direct beginnen en elke keer een beetje meer leren. Het is vooral bedoelt om makkelijk met teams te werken, maar in je eentje werkt het net zo fijn en is het nog makkelijker om te beginnen. Voeg je meer teamleden toe, dan blijft de workflow vrijwel gelijk.

En één van de beste voordelen: git in combinatie met een deployment tool, betekent geen gedoe met FTP meer. Werken via FTP heeft altijd een risico dat je site (eventjes) kapot is, omdat je elke update eigenlijk test in een live omgeving. Je hoeft een programmeur dan ook geen FTP gegevens meer te geven (of te resetten als je een nieuwe programmeur krijgt), want dat staat netjes opgeslagen in de deployment tools (zie hieronder bij Beanstalk en Deploybot). Mocht er iets misgegaan zijn, dan kan je een full deployment doen en dan worden alle bestanden opnieuw op de server gezet.

Tower2 (Mac)

Git kan je heel goed (gratis) via de command line bedienen, maar dan moet je wel de commando’s weten. Tower is een visuele git client, en de meeste commando’s kan je kiezen via de interface. Wel zo makkelijk!

De kosten zijn $69, maar je kan het eerst gratis uit proberen. Ze hebben ook goede handleidingen en videos om te beginnen met git.

tower2

Kaleidoscope (Mac)

Een vrij dure, maar erg mooie tool. Als je $70 kan missen is Kaleidoscope van jou. Je kan bestanden, maar ook hele mappen en zelfs plaatjes met elkaar vergelijken, om te zien wat er anders is. Je kan het 15 dagen gratis proberen.

kaleidoscope

BeanstalkApp (web)

Als je met meerdere mensen aan een project werkt, dan is er een server nodig waar iedereen gegevens mee uitwisselt. Een bekende is Github (zie het volgende punt) maar bij Github moet je nog zelf zorgen voor deployments (het kopiëren van de wijzigingen naar de uiteindelijke server die het host). Dan moet je vaak wel toegang hebben tot de server en git installeren om de wijzigingen binnen te halen. Heb je die toegang niet, bijvoorbeeld op een shared hosting account, dan is Beanstalk erg handig. Daar krijg je afhankelijk van het pakket meerdere deployments erbij. Je kan dus de code van 1 project automatisch (of met een druk op de knop) via FTP (of anders) laten deployen naar bijvoorbeeld 1 tot 20 servers tegelijk. Beanstalk zorgt ervoor dat alleen de gewijzigde bestanden worden gekopieerd, dus dat gaat vrij snel.

Ze zeggen dat je zelfs zonder client kan, omdat je alles via het web al kan bekijken, en dat is heel handig voor erbij, maar ik vind het zelf erg lekker werken met Tower (zie boven).

De kosten zijn $15-$200 per maand (2 weken gratis proberen).

Github (web/Mac/Windows)

Github biedt gratis repo’s aan waar je met meerdere mensen aan code kan werken, maar dan is je project wel echt open source (dan kan iedereen het zien). Ze bieden ook betaalde opties, vanaf $7 per maand. Ze hebben ook software om je code naar Github te pushen, maar die software is niet zo uitgebreid als Tower, maar is wel gratis. Ik vind Github zelf erg prettig werken, ook al moet je bij sommige projecten nog de deployment regelen (zie daarvoor een oplossing hier vlak onder). Wat ook een pluspunt zijn de ingebouwde wiki (per project) en een issue list. De issue list is een lichtgewicht bug en feature tracker, die je vervolgens kan taggen en in milestones kan zetten, zodat je het project beter kan managen en een idee hebt wanneer je volgende release klaar is. Je kan daarvoor uiteraard ook een project management systeem gebruiken, zoals Basecamp, maar de issue tracker inGithub is fijn omdat het zo geïntegreerd is. Als je in je commit bericht zet “… closes #84” en pusht, dan wordt issue 84 automatisch gesloten bijvoorbeeld.

Deploybot (web)

Als je zoals hierboven beschreven een hosted git server gebruikt zoals Github en je geen moeite wilt hebben om te deployen dan is DeployBot een oplossing. Van de makers van Beanstalk, waar je eigenlijk Github en Deploybot in één hebt, is deze oplossing dus ideaal in combinatie met Github (waar je als bonus dus een wiki en issue tracker hebt). De kosten zijn $15 per maand inclusief een ongelimiteerd aantal (FTP) server deployments voor 10 repo’s (1 repo is over het algemeen 1 project).

 

Volgende week een Database tools voor MySQL!

Heb je een suggestie, laat het graag weten.

Published
Categorized as Blog

By Rutger

Rutger is mede-oprichter van Hensel Hosting.