Filial (versionering)

En gren inom versionskontrollsystem  är en utvecklingsriktning oberoende av andra. En filial är en kopia av en del av ett arkiv (till exempel en katalog) som ändringar kan göras till utan att påverka andra filialer. Dokument i olika grenar har samma historik före grenpunkten och olika historik efter den.

Versionskontrollsystem tillhandahåller verktyg för att manipulera grenar, i första hand skapa en gren och slå samman ändringar till en annan gren.

Använda grenar

Det finns ett antal förgreningstekniker som används i stor utsträckning främst inom mjukvaruutveckling .

Stamgren

Revisionshistoriken för varje dokument i arkivet är en trädstruktur . Stamgren ( eng.  stam ) är den huvudsakliga utvecklingsriktningen. Det mesta av förgrening och sammanslagning sker med den. Stamgrenen skapas en gång när ett nytt förvar skapas och finns under hela projektets livslängd. Alla andra grenar är skapade för specifika ändamål och skiljer sig åt i sitt syfte.

Släpp gren

Innan nästa version av programvaran släpps är det oacceptabelt att göra potentiellt destabiliserande ändringar i källkoden. Före release skapas därför vanligtvis en release-gren ( English  release branch eller English  tag ), ändringar i vilka är strikt reglerade. I grund och botten kommer korrigeringar av allvarliga fel som hittas under förberedelsen av versionen in i den. Alla andra ändringar görs på stamgrenen. Således bryts inte stabiliteten för koden på frigivningsgrenen, och utgåvan frigörs från koden för denna gren. I framtiden, genom att slå samman, kan du överföra de korrigeringar som gjorts på releasegrenen till stamgrenen. Som regel raderas inte releasegrenen efter releasen av versionen. Det kan behövas för att återskapa projektets tillstånd vid tidpunkten för utgivningen.

Funktionell gren

En funktionell gren skapas för att utföra en  serie destabiliserande förändringar utan att påverka stamgrenen. Du behöver till exempel lägga till ny funktionalitet i din kod, men ändringarna är så komplexa att de inte kan göras i en enda commit. Eller mer än en person krävs. I detta fall skapas en gren där destabiliserande förändringar görs. I det här fallet kan koden på grenen förbli i ett instabilt tillstånd under lång tid. När ändringarna görs och koden bringas till ett stabilt tillstånd, slås ändringarna samman i trunkgrenen. Således, på stamgrenen, ser ändringar gjorda på featuregrenen ut som en enda commit (den commit som slogs samman), och det finns inga instabila mellantillstånd på stamgrenen. De finns bara på den funktionella grenen, där de kan ses vid behov. Efter sammanslagningen är livscykeln för en funktionsgren över, den kan tas bort.

Se även