25.06.2019
4 min læsetid

Fordelene ved distribueret versionsstyring

Distribuerede versionsstyringssystemer som Git er blevet voldsomt populære de seneste år. Få et overblik over, hvad de distribuerede systemer kan, som de centraliserede ikke kan.

IDA Learning

af IDA Learning

Hvis du har prøvet at samarbejde om et tekstdokument gennem værktøjer som Dropbox, så ved du, at der hurtigt kan opstå problemer, når flere brugere simultant arbejder på samme fil.

Netop denne proces kan et version control system administrere.

Centralisering og distribuering

Der findes mange versionsstyringssystemer. Typisk skelner man mellem centraliserede (CVCS) og distribuerede (DVCS) version control systemer.

Centraliserede versionsstyringssystemer - fx Subversion (SVN) og Team foundation server (TFS) - er baseret på tanken om, at der er en enkelt kopi af dit projekt gemt på en central server.

Når du ønsker at foretage ændringer i bestemte filer, trækker du filer fra det centrale arkiv til din egen computer. Du laver dine ændringer og sikrer dig, de virker - og du ‘committer’ dem til den centrale server, så de andre udviklere kan se dem.

I modsætning hertil står de distribuerede systemer som fx Git, der er det mest anvendte versionsstyringssystem i verden i dag. Git er udviklet af Linus Thorvalds i 2005 og er både gratis og open source.

 

Copied files

Her er du ikke afhængig af en central server til at gemme alle versioner af dit projekts filer. I stedet kloner hver udvikler en kopi af et depot og har projektets fulde historie på sin egen harddisk. Denne klon har alle metadata fra originalen. Dette gør den oprindelige klon i lageret langsommere, men efterfølgende operationer bliver dramatisk hurtigere.

Som udvikler ‘pull’er du nye ændringer fra depotet og ‘push’er dine egne ændringer. I begge tilfælde flytter du hele changesets.

Fordelene ved distribueret versionsstying

Som sagt har hver udvikler hele sit kodelager, inklusiv den fulde historik, liggende lokalt.

Det kan lyde tungt, og hvis dit projekt indeholder mange store binære filer, der ikke let kan komprimeres, eller har en meget lang historie (50.000 ændringer eller mere), så kan overførslen af hele historien tag upraktisk lang tid og optage en del diskplads.

Da de fleste programmeringsprojekter primært består af tekstfiler, og diskplads er så billig, er distribueringen af de mange filer som regel ikke noget reelt problem.

Det giver til gengæld en række fordele:

Alle handlinger, der ikke involverer at pushe/pulle changesets, kan laves ekstremt hurtigt, fordi du (og dine værktøjer) bare skal have adgang til din harddisk og ikke til en server. Det betyder også, at du kan gøre store dele af arbejdet uden at have adgang til internettet - fx på flyet.

Distribuerede systemer giver dig også gode muligheder for både at arbejde alene og uforstyrret - og samtidig gør det det nemmere at samarbejde med de andre udviklere og følge med i deres arbejde.

I Git er det fx helt naturligt at du arbejder i din egen branch og så merger ind i hovedbranchen, når du er klar med en feature. Det kan løse problemer med interferens fra mange andre, der arbejder i samme kodebase, og betyder samtidig, at udviklingen ikke behøver at foregå lineært.

Du kan committe nye ændringer lokalt, uden at nogen andre ser dem. Når du så har en gruppe af changesets klar, kan du pushe dem alle på en gang. Omvendt kan du også dele dine ændringer med en eller to af gangen, så du kan få feedback, inden du viser dine ændringer til hele teamet.

Endelig risikerer du ikke, at store mængder data går tabt, hvis den centrale server crasher, hvilket var en reel risiko med centraliserede versionsstyringssystemer.

Ønsker du i øvrigt at holde fast i et centralt projektopbevaringssted, kan det sagtens gøres i et distribueret system også - det er bare et spørgsmål om at udnævne én kopi af projektet som den centrale, autoritative kopi.

Vil du igang med Git?

Få en god forståelse af distribueret versionsstyring og få de nødvendige færdigheder til virkelig at lykkes med Git på IDAs kursus Mastering version control with Git. Læs Mastering with Git kursus her.

Tilmeld dig Technorama

I Technorama får du et overblik over de vigtigste historier fra teknologiens verden, hvad end det handler om etiske dilemmaer, nye teknologiske landvindinger eller spæde opfindelser.
  • Aktuelle artikler
  • Det bedste vi har set
  • Ugens nyhedsoverflyvning
Tilmeld dig nyhedsbrevLæs det seneste nyhedsbrev