Overstappen naar GIT
Ik krijg nog steeds de vraag waarom en hoe over te stappen van TFVC naar GIT als source control systeem. Bij een dergelijke overstap is een vaak gehoord geluid dat dit lastig is omdat de terminologie anders is en elke verandering vaak weerstand op werpt.
Waarom overstappen naar GIT?
Wat hopelijk echt helpt is wat onderzoek naar de concepten achter GIT en deze te kunnen vertalen naar je dagelijkse werk, om er vervolgens achter te komen dat het best wel prettig werken is met GIT, of anders gezegd, denken als een GIT gebruiker: http://think-like-a-git.net/
Terminologie en Verschillen
Om overstappen naar GIT te vergemakkelijken hieronder eerst een overzicht van de belangrijkste termen vanuit TFVC en hun equivalent in GIT:
TFVC | GIT |
---|---|
Changeset | Commit |
Get Latest | Pull |
Checkout | Edit |
Set active branch | Checkout |
Checkin | Push (pull is mandatory first) |
Label | Tag |
Rollback | Revert |
Code Review | Pull Request |
Een overzicht van de belangrijkste verschillen:
TFVC | GIT |
---|---|
Server changes | Local changes |
Conflicts at checkin | Conflicts at pull |
Server branches (path based and heavy) | Local branches (no path and lightweight) |
Server historie | Local historie |
Hoe over te stappen?
Een common veel gebruikt model is het master, development, feature model. Er is een master branch die gebruikt wordt om releases te deployen, en er wordt ook alleen uit deze branch gedeployed. Vanaf de master branch wordt een develop branch gemaakt. Vanuit hier worden per te bouwen functionaliteit (nieuw of uitbreidingen of hotfixes) feature branches gemaakt die individueel ontwikkeld en getest worden. Als deze goedgekeurd zijn worden ze met een pull request (code review) naar de development branch gemerged voor de integratietesten met andere functionaliteiten. Als ook deze testen zijn goedgekeurd wordt het geheel (bijvoorbeeld van 1 sprint) ook via een pull request naar de master branch gemerged voor een volgende release. Een bekende naam voor dit model is GitFlow.
Tools
Daarnaast bieden Azure DevOps en Azure DevOps Server een import functionaliteit om TFVC respositories om te zetten in GIT. Hier zijn echter wel een aantal voorwaarden aan:
• Er kan maar een beperkte hoeveelheid historie geïmporteerd worden.
• Je mag geen grote binary bestanden in je repository hebben staan.
• De maximale grote van de repository is 1 GB.
Mocht je meer informatie willen over TFVC en de overstap naar GIT, kijk dan op TFVC naar Git migratie. Of neem contact met ons op.
Fabian Biesheuvel, DevOps Consultant
fabianb@delta-n.nl