close
Hoppa till innehållet

Fork

Från Wikipedia
För systemanropet i Unix, se fork (systemanrop).
BERJAYA
Unix historiska delningar
BERJAYA
Tidslinje som visar delningar av Linux-distributioner

En fork är ett begrepp inom utveckling av mjukvara, som syftar på en kodbas som är en dubblett från en original kodbas, men som vidare utvecklas separat från originalet. Till en början har de olika mjukvarorna identiska beteenden, men skillnaderna blir större med tiden, eftersom båda utvecklas åt olika håll.[källa behövs]

Fork eller Branch

[redigera | redigera wikitext]

Skillnaden mellan en fork och en branch (avgrening), är att en avgrening är en tillfällig uppdelning av programutvecklingen för flera parallella utvecklingslinjer inom samma projekt. Syftet med en avgrening är att senare sammanföra dem igen.

Då det gäller mer komplicerad programvara kräver utveckling och felsökning mycket arbete. Då en avgrening så småningom avviker alltmer från moderprojektet kommer detta arbete att behöva göras i båda (alla) grenarna.[källa behövs] Det betyder att en gren ofta dör bort, men ibland först efter att eventuella välmotiverade förbättringar i denna införlivats i de mer livskraftiga grenarna.[källa behövs]

Vetskapen om det extra arbete och den splittring av resurser en avgrening för med sig för båda grenarna är en mycket stark sammanhållande kraft; de ledande personerna i ett framgångsrikt projekt undviker konflikter som skulle leda till att viktiga personer och organisationer lämnar projektet, samtidigt som erfarna programmerare vanligen drar sig för att lägga arbete på en egen gren.

I någorlunda överskådliga projekt går det ofta att upprätthålla en uppsättning egna modifikationer (engelska: patchset), som anpassas till moderprojektets kod alltefter som denna förändras. Detta räknas inte som en avgrening och är vanligt vad gäller experimentell kod som inte ännu är mogen för projektets huvudgren eller kod anpassad för en viss miljö som inte upplevs väsentlig för projektet.


Här är en illustration av varför fenomenet kallas fork; i figuren löper tiden åt höger (det engelska ordet betyder inte bara gaffel utan även förgrening och trädklyka):

                                   —————————————> NetBSD
 BSD                             /
 ———————————————>———————————————>———————————————> FreeBSD
                                 \
                                   —————————————> OpenBSD


Kända forkar

[redigera | redigera wikitext]