Fork (software development)
In software development, a fork is a codebase that is created by duplicating an existing codebase and, generally, is subsequently modified independently of the original. Software built from a fork initially has identical behavior as software built from the original code, but as the source code is increasingly modified, the resulting software tends to have increasingly different behavior compared to the original. A fork is a form of branching, but generally involves storing the forked files separately from the original; not in the repository. Reasons for forking a codebase include user preference, stagnated or discontinued development of the original software or a schism in the developer community.[1] Forking proprietary software (such as Unix) is prohibited by copyright law without explicit permission, but free and open-source software, by definition, may be forked without permission.
- ^ "Schism", with its connotations, is a common usage, e.g.
- "the Lemacs/FSFmacs schism" Archived 30 November 2009 at the Wayback Machine (Jamie Zawinski, 2000)
- "Behind the KOffice split" Archived 6 July 2013 at the Wayback Machine (Joe Brockmeier, Linux Weekly News, 2010-12-14)
- "Copyright assignment – once bitten, twice shy" Archived 30 March 2012 at the Wayback Machine (Richard Hillesley, H-Online, 2010-08-06)
- "Forking is a feature" Archived 29 February 2012 at the Wayback Machine (Anil Dash, 2010-09-10)
- "The Great Software Schism" Archived 6 January 2012 at the Wayback Machine (Glyn Moody, Linux Journal, 2006-09-28)
- "To Fork Or Not To Fork: Lessons From Ubuntu and Debian" Archived 26 February 2012 at the Wayback Machine (Benjamin Mako Hill, 2005).