Filial (versionering)

En gren i versionskontrolsystemer  er en udviklingsretning uafhængig af andre. En filial er en kopi af et stykke af et lager (f.eks. en mappe), hvortil der kan foretages ændringer uden at påvirke andre filialer. Dokumenter i forskellige afdelinger har den samme historie før forgreningspunktet og forskellig historie efter det.

Versionskontrolsystemer giver værktøjer til at manipulere grene, primært oprettelse af en gren og flette ændringer til en anden gren.

Brug af grene

Der er en række forgreningsteknikker, der er meget udbredt, primært i softwareudvikling .

Stængelgren

Revisionshistorikken for hvert dokument i depotet er en træstruktur . Stængelgren ( eng.  trunk ) er den vigtigste udviklingsretning. Det meste af forgreningen og sammensmeltningen sker med det. Stængelgrenen oprettes én gang ved oprettelse af et nyt depot og eksisterer i hele projektets levetid. Alle andre filialer er skabt til specifikke formål og adskiller sig i deres formål.

Frigiv gren

Før udgivelsen af ​​den næste version af softwaren er det uacceptabelt at foretage potentielt destabiliserende ændringer i kildekoden. Derfor oprettes der normalt en udgivelsesgren før udgivelsen ( engelsk  udgivelsesgren eller engelsk  tag ), hvor ændringer er strengt reguleret. Grundlæggende kommer rettelser af alvorlige fejl fundet under forberedelsen af ​​versionen ind i den. Alle andre ændringer foretages på stammegrenen. Stabiliteten af ​​koden på udgivelsesgrenen er således ikke brudt, og udgivelsen frigives fra koden for denne gren. I fremtiden kan du ved at fusionere overføre rettelserne lavet på frigivelsesgrenen til stammegrenen. Udgivelsesgrenen slettes som udgangspunkt ikke efter udgivelsen af ​​versionen. Det kan være nødvendigt at gengive projektets tilstand på udgivelsestidspunktet.

Funktionel gren

En funktionel gren er skabt til at udføre en  række destabiliserende ændringer uden at påvirke stammegrenen. Du skal for eksempel tilføje ny funktionalitet til din kode, men ændringerne er så komplekse, at de ikke kan udføres i en enkelt commit. Eller der kræves mere end én person. I dette tilfælde skabes en gren, hvor der foretages destabiliserende ændringer. I dette tilfælde kan koden på grenen forblive i en ustabil tilstand i lang tid. Når ændringerne er foretaget, og koden bringes til en stabil tilstand, flettes ændringerne ind i trunkgrenen. På stammegrenen ser ændringer foretaget på featuregrenen således ud som en enkelt commit (den commit, der blev slået sammen), og der er ingen ustabile mellemtilstande på stammegrenen. De er kun på den funktionelle gren, hvor de kan ses om nødvendigt. Efter fusionen er livscyklussen for en funktionsgren slut, den kan slettes.

Se også