Fork

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

En fork (engelska för förgrening) även kallat gaffling[källa behövs] är avknoppning eller avgrening av programvaruprojekt i flera fristående projekt. Det kan exempelvis handla om en stark grupp som vill driva ett projekt med öppen källkod åt ett annat håll än majoriteten inom projektet. Denna grupp utgår då normalt från en kopia på källkoden och fortsätter jobba efter sina egna principer, utan att nödvändigtvis följa moderprojektets policy och designprinciper.

En fork skiljer sig från en branch (förgrening), som är en tillfällig uppdelning av programutvecklingen i flera parallella utvecklingslinjer inom samma projekt, och har till syfte att senare kunna sammanföras.

Då det gäller mer komplicerad programvara kräver utveckling och felsökning mycket arbete. Då en avgrening så småningom avviker allt mer 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

Se även

Media som används på denna webbplats

Question book-4.svg
Författare/Upphovsman: Tkgd2007, Licens: CC BY-SA 3.0
A new incarnation of Image:Question_book-3.svg, which was uploaded by user AzaToth. This file is available on the English version of Wikipedia under the filename en:Image:Question book-new.svg
Linux Distribution Timeline.svg
Författare/Upphovsman: Andreas Lundqvist (initially), Muhammad Herdiansyah (continued), Fabio Loli (continued), Licens: GFDL 1.3
Tidslinje för olika linuxdistributioner.
Unix history-simple.png
Författare/Upphovsman: Eraserhead1, Licens: CC BY-SA 3.0
Ett diagram som visar hur olika Unix-system utvecklats över tiden