Fork

Przykład forku: oś czasu rozwoju systemu Unix.

Fork (po ang. rozwidlenie) – sytuacja, w której rozwój projektu nie prowadzi już jedną drogą, ale rozwidla się na dwie lub więcej gałęzi(inne języki).

Podział forków ze względu na powód, dla którego powstały:

  • Jedna grupa forków dotyczy projektów, których zasięg stał się z praktycznego punktu widzenia za duży. Przykładowo na potrzeby projektu GIMP powstał zbiór widżetów, który został oddzielony od GIMP-a i przeniesiony do GTK+. GTK+ ulegało potem dalszym podziałom, odłączyły się od niego m.in. GLib i Pango.
  • Inną grupą są specjalne wersje projektu, rozwijane jednak we współpracy z „główną gałęzią”, np. wersje Apache, jądra Linuksa używane w różnych dystrybucjach, czy też CinePaint (dawniej Film Gimp), który odłączył się od GIMP-a.
  • Trzecią grupę stanowią sytuacje, kiedy wskutek konfliktów co do właściwego kierunku rozwoju projektu powstaje kilka różnych gałęzi. Zwykle jedna z gałęzi powstałych po rozpadzie szybko ginie, np. EGCS odłączyło się od GCC, po czym stało się jedyną oficjalną wersją, gdyż programiści GCC przeszli do projektu EGCS (który od tego czasu ponownie nosi nazwę GCC). Czasem różne gałęzie istnieją obok siebie przez bardzo długi czas, pozostając ze sobą w różnych stosunkach. Tak jak np. XEmacs i GNU Emacs, czy różne wersje systemu BSDFreeBSD, OpenBSD, NetBSD itp.

Termin „fork” nie jest stosowany konsekwentnie i bywa często używany w stosunku do innych rodzajów projektów pochodnych (które w sensie ścisłym forkami nie są). I tak, według pracy Gonzalesa i González-Barahony[1] można wyróżnić następujące rodzaje takich projektów pochodnych lub powiązanych w pewien sposób:

  • klony (ang. clones) – projekty, w których „skopiowany” jest inny projekt pod kątem jego funkcjonalności;
  • odgałęzienia (ang. branches) – skopiowanie kodu i następujący po tym rozwój wybranych funkcji projektu, często w celu dołączenia i przetestowania nowych funkcji;
  • rozwidlenia / forki (ang. forks) – rozpoczęcie zupełnie niezależnego (od gałęzi pierwotnej) projektu, która często występuje pod własną nazwą i charakteryzuje się innymi „atrybutami niezależności”;
  • system pochodny (ang. derivation) – system, który jest w dużej mierze podobny i kompatybilny z systemem pierwotnym, lecz widoczne też są wyraźne różnice;
  • mod (ang. mod) – modyfikacja systemu polegająca na rozszerzeniu możliwości systemu (np. dodaniu nowych poziomów do gry), robiona głównie przez entuzjastów systemu.

Zobacz też

Przypisy

  1. Gregorio Robles, Jesús González-Barahona, Imed Hammouda, Björn Lundell, Tommi Mikkonen: A Comprehensive Study of Software Forks: Dates, Reasons and Outcomes. T. Open Source Systems: Long-Term Sustainability. Springer Berlin Heidelberg, 2012, s. 1–14. (ang.).

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.
Kembali kehalaman sebelumnya