*** Welcome to piglix ***

Fork (software development)


In software engineering, a project fork happens when developers take a copy of source code from one software package and start independent development on it, creating a distinct and separate piece of software. The term often implies not merely a development branch, but also a split in the developer community, a form of schism.

Free and open-source software is that which, by definition, may be forked from the original development team without prior permission without violating copyright law. However, licensed forks of proprietary software (e.g. Unix) also happen.

The word fork stems from the Latin word furca, meaning a "fork or similarly shaped instrument." "Fork" in the meaning of "to divide in branches, go separate ways" has been used as early as the 14th century. In the software environment, the word evokes the fork system call, which causes a running process to split itself into two (almost) identical copies that (typically) diverge to perform different tasks.

In the context of software development, "fork" was used in the sense of creating a revision control "branch" by Eric Allman as early as 1980, in the context of SCCS:

Creating a branch "forks off" a version of the program.

The term was in use on Usenet by 1983 for the process of creating a subgroup to move topics of discussion to.

"Fork" is not known to have been used in the sense of a community schism during the origins of Lucid Emacs (now XEmacs) (1991) or the BSDs (1993–1994); Russ Nelson used the term "shattering" for this sort of fork in 1993, attributing it to John Gilmore. However, "fork" was in use in the present sense by 1995 to describe the XEmacs split, and was an understood usage in the GNU Project by 1996.


...
Wikipedia

...