Content deleted Content added
Tags: Mobile edit Mobile web edit |
m →Etymology: HTTP to HTTPS for SourceForge |
||
(7 intermediate revisions by 3 users not shown) | |||
Line 1:
{{
{{redirect|Fork (software)|the operation whereby a process creates a copy of itself|fork (system call)}}
{{Use dmy dates|date=December 2022}}
[[File:Linux Distribution Timeline.svg|thumb|upright|A timeline chart showing the evolution of [[Linux distribution]]s, with each split in the diagram being called "a fork"]]
In [[software
* [http://www.jwz.org/doc/lemacs.html "the Lemacs/FSFmacs schism"] {{Webarchive|url=https://web.archive.org/web/20091130093142/http://www.jwz.org/doc/lemacs.html|date=30 November 2009}} ([[Jamie Zawinski]], 2000)
* [https://lwn.net/Articles/419822/ "Behind the KOffice split"] {{webarchive|url=https://web.archive.org/web/20130706094238/http://lwn.net/Articles/419822/|date=6 July 2013}} (Joe Brockmeier, ''Linux Weekly News'', 2010-12-14)
Line 9:
* [http://dashes.com/anil/2010/09/forking-is-a-feature.html "Forking is a feature"] {{webarchive|url=https://web.archive.org/web/20120229032536/http://dashes.com/anil/2010/09/forking-is-a-feature.html|date=29 February 2012}} ([[Anil Dash]], 2010-09-10)
* [http://www.linuxjournal.com/node/1000101 "The Great Software Schism"] {{webarchive|url=https://web.archive.org/web/20120106065841/http://www.linuxjournal.com/node/1000101|date=6 January 2012}} ([[Glyn Moody]], ''Linux Journal'', 2006-09-28)
* [http://mako.cc/writing/to_fork_or_not_to_fork.html "To Fork Or Not To Fork: Lessons From Ubuntu and Debian"] {{webarchive|url=https://web.archive.org/web/20120226160810/http://mako.cc/writing/to_fork_or_not_to_fork.html|date=26 February 2012}} ([[Benjamin Mako Hill]], 2005).</ref>
== Etymology ==
The word
In the context of software development,
{{quotation|Creating a branch "forks off" a version of the program.}}
Line 22 ⟶ 20:
The term was in use on [[Usenet]] by 1983 for the process of creating a subgroup to move topics of discussion to.<ref>[https://groups.google.com/group/net.misc/browse_thread/thread/b0e9f8531558b7e9/1cc726d9e9e05ebd?q=fork#1cc726d9e9e05ebd Can somebody fork off a "net.philosophy"?] ([[John Gilmore (activist)|John Gilmore]], net.misc, 18 January 1983)</ref>
The word is used similarly for the [[Fork (system call)|fork() system call]] which causes a running [[Process (computing)|process]] to split in two {{endash}} typically, to allow them to perform different tasks in parallel.<ref>"The term fork is derived from the POSIX standard for operating systems: the system call used so that a process generates a copy of itself is called fork()." {{cite conference|url=http://flosshub.org/sites/flosshub.org/files/paper_0.pdf|title=A Comprehensive Study of Software Forks: Dates, Reasons and Outcomes|first1=Gregorio|last1=Robles|first2=Jesús M.|last2=González-Barahona|conference=OSS 2012 The Eighth International Conference on Open Source Systems|year=2012|access-date=20 October 2012|url-status=live|archive-url=https://web.archive.org/web/20131202221721/http://flosshub.org/sites/flosshub.org/files/paper_0.pdf|archive-date=2 December 2013|doi=10.1007/978-3-642-33442-9_1|doi-access=free}}</ref>
==Forking of free and open-source software==
Line 54:
[[Distributed revision control]] (DVCS) tools have popularised a less emotive use of the term "fork", blurring the distinction with "branch".<ref>''e.g.'' {{cite web|url=https://lwn.net/Articles/628527/|title=An "open governance" fork of Node.js|first=Nathan|last=Willis|work=LWN.net|date=15 January 2015|access-date=15 January 2015|quote=Forks are a natural part of the open development model—so much so that GitHub famously plasters a "fork your own copy" button on almost every page.|url-status=live|archive-url=https://web.archive.org/web/20150421055059/http://lwn.net/Articles/628527/|archive-date=21 April 2015}} See also {{cite thesis|type=PhD|page=57|first=Linus|last=Nyman|title=Understanding Code Forking in Open Source Software|publisher=Hanken School of Economics|year=2015|quote=Where practitioners have previously had rather narrow definitions of a fork, [...] the term now appears to be used much more broadly. Actions that would traditionally have been called a branch, a new distribution, code fragmentation, a pseudo-fork, etc. may all now be called forks by some developers. This appears to be in no insignificant part due to the broad definition and use of the term fork by GitHub.|hdl=10138/153135}}</ref> With a DVCS such as [[Mercurial]] or [[Git]], the normal way to contribute to a project, is to first create a personal branch of the repository, independent of the main repository, and later seek to have your changes integrated with it. Sites such as [[GitHub]], [[Bitbucket]] and [[Launchpad (website)|Launchpad]] provide free DVCS hosting expressly supporting independent branches, such that the technical, social and financial barriers to forking a source code repository are massively reduced, and GitHub uses "fork" as its term for this method of contribution to a project.
Forks often restart version numbering from numbers typically used for initial
The [[BSD licenses]] permit forks to become proprietary software, and [[copyleft]] proponents say that commercial incentives thus make proprietisation almost inevitable. (Copyleft licenses can, however, be circumvented via dual-licensing with a proprietary grant in the form of a [[Contributor License Agreement]].) Examples include [[macOS]] (based on the proprietary [[NeXTSTEP]] and the open source [[FreeBSD]]), [[Cedega (software)|Cedega]] and [[CrossOver]] (proprietary forks of [[Wine (software)|Wine]], though CrossOver tracks Wine and contributes considerably), EnterpriseDB (a fork of [[PostgreSQL]], adding Oracle compatibility features<ref>[http://www.enterprisedb.com EnterpriseDB] {{webarchive|url=https://web.archive.org/web/20061113052033/http://www.enterprisedb.com/ |date=13 November 2006 }}</ref>), Supported PostgreSQL with their proprietary ESM storage system,<ref>[http://www.fastware.com.au/docs/FujitsuSupportedPostreSQLWhitePaperV1_02.pdf Fujitsu Supported PostgreSQL] {{webarchive|url=https://web.archive.org/web/20060820144738/http://fastware.com.au/docs/FujitsuSupportedPostreSQLWhitePaperV1_02.pdf |date=20 August 2006 }}</ref> and Netezza's<ref>[http://www.netezza.com/media/2004/Weblog.htm Netezza] {{webarchive|url=https://web.archive.org/web/20061113210650/http://www.netezza.com/media/2004/Weblog.htm |date=13 November 2006 }}</ref> proprietary highly scalable derivative of PostgreSQL. Some of these vendors contribute back changes to the community project, while some keep their changes as their own competitive advantages.
Line 64:
==See also==
*
* [[Source port]]▼
▲* [[Downstream (software development)]]
* {{Annotated link|Group decision-making}}
* {{Annotated link|List of software forks}}
* [[Modular programming]]▼
*
* [[Team effectiveness]]▼
▲** [[Duplicate code]]
▲* [[ROM hacking|ROM Hacking]]
==References==
|