Talk:Fork (software development)

From Wikipedia, the free encyclopedia
Jump to: navigation, search
WikiProject Computing (Rated Start-class)
WikiProject icon This article is within the scope of WikiProject Computing, a collaborative effort to improve the coverage of computers, computing, and information technology on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
Start-Class article Start  This article has been rated as Start-Class on the project's quality scale.
 ???  This article has not yet received a rating on the project's importance scale.
 

old talk[edit]

I am suggesting this page be wikified




Samba vs. Samba TNG - am I right in thinking TNG was blessed as Samba 3? And would that be an internal fork, or an external fork being blessed? - David Gerard 13:23, Jan 13, 2004 (UTC)


This article does not do justice to the sort of intentional forking that goes on regularly in both free and proprietary software projects; e.g., FreeBSD-CURRENT vs. FreeBSD-STABLE, Linux 2.x vs. Linux 2.(x+1), Cisco IOS 12.0 versus 12.0S versus 12.0T versus 12.1 versus 12.1S versus 12.1T versus 12.1B versus 12.2{,S,T,B} versus 12.3 ad nauseam. 18.24.0.120 05:05, 27 Jan 2004 (UTC)


From an article Code Forking, which I've redirected to Fork (software)"

Code forking is what occurs when code is taken by two different developers and developed independantly. The individual builds of the software constitute the forks which often do not share improvements and other changes made to other forks of the software.

Examples of this include the original Emule software ( http://emule-project.net ) and Emule Plus ( http://emuleplus.sourceforge.net/ ), which started as a mod of Emule and later stopped reintroducing their own updates into the official client. Instead they formed their own client and created a code fork.

(edit by article author): I went to the page that sent me to the blank "code forking" page and redirected the link to fork (software). It was under Software hoarding. I'm too lazy to add my meager example in the face of what's already in this article.


Is the forking of certain web syndication standards (e.g. RSS 0.9/1.0 vs. RSS 0.9x/2.0) within the scope of this article? A-giau 21:55, 26 Nov 2004 (UTC)


Firefox has reached 1.0. Should it be declared the official Mozilla browser, then? -- Kizor 03:57, 27 Dec 2004 (UTC)


Is this really still a stub? Stillnotelf 20:46, 19 September 2005 (UTC)


Could someone knowledgeable explain the rather oblique reference to Wikipedia forks? Natcolley 20:09, 1 October 2005 (UTC)

Broader application[edit]

No doubt this phenomenon exists much more broadly than just computing/software development. Could we not then, make mentions of this in art, philosophy, etc...or even create a new page on this topic? ~ Dpr 08:24, 14 Jun 2005 (UTC)

I'm game. Do you have any specific examples of that kind of usage? MFNickster 19:30, 14 Jun 2005 (UTC)

Right off the top, I can say that what people think of as 'the' Baptist church is nothing but an ongoing series of forks. The Civil War split the Northern (now American) Baptists from the Southern. Of course black people had their own 'convention', which itself has repeatedly fractured. There are dozens if not hundreds of independent Baptist conventions out there. I doubt anybody really knows the number. Although generally speaking some are more 'liberal' than others, most of these church splits were more about ego, personality and power than theology. Can the same be said of the software development community? If so, then perhaps 'forking' should be filed under Psychology :-). Natcolley 20:06, 1 October 2005 (UTC)

Webster forked the English language when he wrote his dictionary. Mao forked communism with his little red book. Saayiit (talk) 05:53, 3 September 2009 (UTC)

That would be a schism (religion), and well spotted! It's exactly the right word - David Gerard (talk) 17:14, 4 November 2011 (UTC)

Wikibook FORK[edit]

There is now (created) on Wikibooks a forking policy, it a approved policy but it still under debate Wikibooks:C++

Wikibook would be more correctly forking eBooks or Library Science Database than actually other people trying to copy him, which is totally not true and violating its own original research policies. I suspect Wikipedia is scandalous in deletion since a lot of AfD, TfD, and CfD have no backups and logs (which is irresponsible for security measures) and claims ownership of its Sister Projects and evade legal problems such as Fair Use Rationale policies probably, which doesn't even exists in the legal system. --75.154.186.241 (talk) 10:14, 18 April 2009 (UTC)

Spoons?[edit]

I've seen Ubuntu referred to as a "spoon" of Debian. What does this pun mean? Twinxor t 06:36, 4 October 2005 (UTC)

It's probably a semi-serious way of saying they're not a "true" fork. In other words, Ubuntu tries to stay on good terms, and in sync, with Debian, instead of diverging. --Piet Delport 10:28, 16 May 2006 (UTC)

Self-referencing[edit]

In passing, I noticed this page contains a self-reference to Wikipedia in the leader text. Could someone with a better, external example, change this per Wikipedia:Avoid self-references? Rob Church Talk | FAD 10:51, 14 October 2005 (UTC)

It's not a self-reference to Wikipedia, but rather Wikipedia talking about itself as an example, which is explicitly allowed by the source you site. The link to Wikipedia is even within the main namespace, so does not have to be changed to an external link style. I don't see anything that needs to be changed according to the rules about avoiding self-referencing. -- 68.252.13.201 14:30, 14 October 2005 (UTC)

Sections[edit]

I've cut the page up into sections. Do any more likely sections leap out to anyone's eyes? Also, this article could do with some solid referencing - David Gerard 01:04, 24 September 2006 (UTC)

Article Bias[edit]

This article is heavily biased to Open Source and not enough information on true Proprietary software forking. Nor is there any information on approaches to forking Proprietary software. —Preceding unsigned comment added by Kit105 (talkcontribs) 03:51, 5 February 2009 (UTC)

HoverRace.com's Fork of HoverRace[edit]

I'd like the users editing this article to help end the edit-war between a few users (myself included) on the HoverRace article. HoverRace was a shareware game originally designed/coded by GrokkSoft (Richard Langlois) in 1995/1996. Recently, Mr. Langlois released the source code to the last legally released version of HoverRace (1.01). GrokkSoft.com was the official website for HoverRace until it was abandoned. Once Langlois released the source code, HR.com began working on it to get it to compile, and recently to make what they consider improvements (most of which were not sanctioned or planned by Langlois). Once Langlois released the source code, he basically stopped bothering with the people at HR.com, except to remove the expiry from the source code license.

Now, HR.com are claiming that their fork of the original game is not a fork at all, but the official/original version.

Pleas note: HoverRace.com was never, and still is not the official website for HoverRace. It started in 1996 as a fan-site by a registered user of the game.

I'm thinking that I'm not wrong on this, but I could be. Regardless of whether I am right or wrong, I'd like for some of you to explain whether or not HoverRace.com's "version" of HoverRace is a fork or not on http://en.wikipedia.org/wiki/Fork_(software_development), please...64.230.16.234 (talk) 20:53, 9 March 2009 (UTC)

Friendly fork ?[edit]

I have seen this term on a few wiki articles and it seems worth defining in this article, so that it can be wikilinked. Anyone want to take a four-tined stab at adding this? :) DMahalko (talk) 06:43, 16 July 2011 (UTC)

I'd like to see it defined outside the wiki first :-) I've noted it blurs the distinction between forking and branching, as it's now common for someone to do a completely independent branch on github or whatever - David Gerard (talk) 16:14, 3 November 2011 (UTC)

Notable forks[edit]

I've culled most of these as not particularly notable. This is a blatant subjective judgement call on my part, but it was becoming a list of "every fork ever". Perhaps that could be broken out into a list article. I've left in forks that are particularly notable and that aren't already mentioned in the body text - David Gerard (talk) 16:14, 3 November 2011 (UTC)

Actually, List of software forks started! - David Gerard (talk) 16:19, 3 November 2011 (UTC)

Etymology[edit]

This appears to be entirely spurious. Does anyone have any actual cite that the term "fork" came from POSIX? There must be a first use somewhere - David Gerard (talk) 16:19, 3 November 2011 (UTC)

Discussion: [1] - David Gerard (talk) 11:09, 4 November 2011 (UTC)
Tentative fix on the basis of that discussion. Need to nail down first usage of "fork" for "community split". Also, when Eric Allman wrote that, was he thinking of fork()? - David Gerard (talk) 13:05, 4 November 2011 (UTC)
I added the etymology with Unix fork(2), which got promptly removed, pointing here. Assuming the Wikipedia articles on Posix & on fork are correct, it's obvious the name is not related to Posix, as the first usage of fork is from 1980 and Posix started from a project which started in 1985. Seems obvious to me it's from the Unix system call, fork(2), but I can also understand why this was removed due to lack of a source. I've asked Eric Allman, I'll report if I get anything which could be helped to settle this. Jkpjkp (talk) —Preceding undated comment added 07:51, 12 September 2012 (UTC)
That would be fantastic, thank you! I asked Eric Raymond and Russ Nelson, but neither could think of anything slightly citable ... - David Gerard (talk) 11:32, 12 September 2012 (UTC)
I got an answer, but email is not citable IIRC even in a case like this, so we will see if something can be done. Meanwhile, an (apparently citable) online etymology index [2] cites a meaning "to divide in branches, go separate ways" dated back to "early 14c", that would be match the etymology of fork(2) as well as this. BTW when looking at this also ran into one Eric Allman being originally from a city called American Fork :-), but that's a different person. Jkpjkp (talk) 18:28, 13 September 2012 (UTC)
He has a blog, he just hardly posts to it ... - David Gerard (talk) 19:41, 13 September 2012 (UTC)
Thanks for the tip, without knowing if there's a blog I suggested a blog post. Enjoyed reading "Programming Isn't Fun Any More". I added a text and pointer to the etymology dictionary, we'll see if there'll be something citable on the cited 1980 use. Jkpjkp (talk) 08:21, 14 September 2012 (UTC)
A few possible etymological sources/influences: the metaphor http://en.wikipedia.org/wiki/Fork_in_the_road_%28metaphor%29 and a 1965 song: http://en.wikipedia.org/wiki/A_Fork_in_the_Road_%28The_Miracles_song%29 The metaphor page takes us back as far as Book of Ezekiel, Can't find "fork" in 1611 or "standard" King James version, though. The page also mentions "The road not taken"; this reminds me of an essay titled something like "The road not taken" appearing regarding a BSD Unix split, appears to be based on a poem from 1916. http://en.wikipedia.org/wiki/The_Road_Not_Taken_%28poem%29 . Jkpjkp (talk) 08:37, 14 September 2012 (UTC)
Not so familiar with all Wikipedia conventions, but I wonder about the accuracy/correctness/certainty of ".. term "fork" was first used in the sense of "branch" by Eric Allman in 1980". How can we reliably know if this really is so? Perhaps rephrase to something like 'first known recorded use of "fork" for software branching ...' or the like. Jkpjkp (talk) 09:00, 14 September 2012 (UTC)
Yeah, something like that. I spent a while looking about for usages of the term in computing. sccs is one of the earliest VCSes as we know them, so it's quite possible that was actually the first. But "first recorded" is certainly accurate - David Gerard (talk) 10:20, 14 September 2012 (UTC)

Propose merge[edit]

I propose Repository clone be merged to Fork (software development). The concepts of distributed VCS that apply to clone are the same as the ones in fork, and by cloning you are in effect forking the project with the intent of merging it back later. Jonatanschroeder (talk) 21:31, 3 March 2012 (UTC)

That seems like a very good idea but I wonder if it wouldn't be more appropriate to merge with Branching (revision control) instead. 50.53.15.59 (talk) 10:38, 30 May 2014 (UTC)

Comparison with a religious Schism[edit]

I have removed the text relating this to a schism. It is already bad people see software as some kind of "religion" ("religion" used "in the bad sense", in the sense of "my religion is better than your religion". I certainly agree there are some similar aspects, but I think a better analogy would be that of a sub-set of a political party splitting to form a new one. Either way, the thing about the schism is unsourced. --SF007 (talk) 08:45, 13 March 2012 (UTC)

It took me ten seconds with the obvious Google search ("fork schism") to find many usage examples of "schism" in the first page of results (now added - all from the press, or from people notable enough to have their own articles). Your reasoning that it would be bad if this were the English word for the phenomenon does not change that it is the English word for the phenomenon. And subsets of political parties splitting to form a new one are already called schisms, in direct analogy with religious splits - see Category:Political schisms - David Gerard (talk) 18:44, 20 March 2012 (UTC)
None of this changes the fact that comparing a split in the developer community to a schism seems superfluous. In principle, a fork doesn't imply anything about disagreement in the developer community-- a third party unrelated to a project's initial development might just want to take it in a different direction. However, in practice, I agree it often does involve some hostility. Still, what need for the comparison to a schism? — Preceding unsigned comment added by Erh2103 (talkcontribs) 06:13, 31 March 2012 (UTC)
However, the word "schism" means this in English. It carries the connotations of the split being rancorous, in the historically well-documented usage of "fork" - David Gerard (talk) 11:49, 9 April 2012 (UTC)

Relationship to the fork system call?[edit]

Presumably, the fork system call in Unix predates using the term in software development. This must have been in the mind of whoever coined the term. Does anyone have any thoughts/material on this relationship and whether it should be mentioned in this article? — Preceding unsigned comment added by Erh2103 (talkcontribs) 06:18, 31 March 2012 (UTC)

If you read this very talk page, you will see discussion of this precise point. Specifically, the recent addition [3] appears to be entirely original research, specifically personal speculation - David Gerard (talk) 11:49, 9 April 2012 (UTC)
Only an idiot couldn't see the connection. Of course it would be preferable to have a citation but calling this "original research" is silly. I did not speculate about what was in the minds of Posix developers, but simply drew attention to what was common usage in the software world at the time with a suitably dated citation. The article is poorer without it. Chris55 (talk) 09:16, 20 October 2012 (UTC)
Ok, 5 minutes googling leads to the following quotation. Is this adequate?
But in some cases a software project evolves in parallel, lead by different development teams. This is known as ”forking”. 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(). Neil A. Ernst, Steve M. Easterbrook, John Mylopoulos: Code forking in open-source software: a requirements perspective CoRR abs/1004.2889: (2010)
I will wait for an acknowledgment before putting this in the article since this seems to be a hot potato. Chris55 (talk) 09:41, 20 October 2012 (UTC)
It's well after the event, if you're sure it isn't a circular reference ... - David Gerard (talk) 19:29, 20 October 2012 (UTC)
At least one of the authors, John Mylopoulos, is a very well-respected computer scientist. And it's not till now, when new generations of people come along, that anyone needed to be told. The late seventies were a time when unix-like systems were growing all over the place and forking (os) was such an improvement on the earlier more heavyweight ideas of process creation and it fits so well with open source projects. Chris55 (talk) 19:55, 20 October 2012 (UTC)

Etymology of fork[edit]

I just changed this:

In the software environment, the term "fork" entered computing jargon around 1969 with the Unix mechanism by which a process split in two by forming an identical copy of itself.

The cited Ritchie paper doesn't make this claim of originality or influence, it just describes the fork system call in a technical sense. The second reference doesn't claim that "fork" was not in use prior to 1969 and the invention of Unix, and it shouldn't, because the fork–join model of parallelism (which also features forking processes) predates it.

Then the Allman reference:

the first documented use of the term "fork" in the sense of a revision control "branch" was by Eric Allman in 1980, to describe forming branches in SCCS

Sure Allman calls this "forking" (exactly once, and in quotes). But there's no sign this was the first use of "fork" in this sense, so that claim appears to be OR. QVVERTYVS (hm?) 11:43, 6 December 2014 (UTC)

Have you read above on this talk page? Etymology of "fork" is a bit of a vexed question really - David Gerard (talk) 13:53, 6 December 2014 (UTC)
Oops, should have read that. But the discussion above doesn't actually prove that Allman's use is the first documented use. It's just the oldest use that someone's been able to find on the web, so calling it the first is still OR (and very possibly incorrect). QVVERTYVS (hm?) 20:35, 7 December 2014 (UTC)
Possibly OR, but probably not incorrect. I did work pretty hard to find whatever I could on this, if anyone finds a more solid source I'll be surprised and pleased. Your present wording is probably OK though - David Gerard (talk) 21:53, 9 December 2014 (UTC)