git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: "Producting Open Source Software" book and distributed SCMs

From
Theodore Tso <tytso@mit.edu>
Date
May 1, 2007, 15:23 UTC
Message-ID
<20070501152342.GB26093@thunk.org>
In-Reply-To
<Pine.LNX.4.64.0705011057130.29859@racer.site>
On Tue, May 01, 2007 at 11:35:54AM +0200, Johannes Schindelin wrote:
Show 22 quoted lines
> > [...]
> > 
> >   Because a fork is bad for everyone (for reasons examined in detail in 
> >   the section called "Forks" in Chapter 8, Managing Volunteers, 
> >   http://producingoss.com/producingoss.html#forks), the more serious the 
> >   threat of a fork becomes, the more willing people are to compromise to 
> >   avoid it.
> 
> This is a lousy argument, IMHO.
> 
> Why are forks bad? They are not. But if you "learnt" that merges are hard, 
> they are.
> 
> It is a pity that so many people were trained in CVS, and keep thinking 
> some of the lectures were true, when they are no longer.
> 
> Forks are good. In fact, we all "forked" with CVS as soon as we began 
> hacking. Everybody who claims to never have started over from a fresh 
> checkout, or from an "update -C"ed state, is probably lying, or a bad 
> developer. Thinking about it, I believe that the difference between 
> forking and branching is philosophical, not technical. You can always 
> merge a fork.

There's a confusion going on here between a "fork" meaning a branch in the SCM sense of the word, and a "Project Fork" where there are two camps competing for developers and users. So for example, having kerenl developers develop using branches which are then merged into the -mm tree and then into Linus tree --- Good. In the suspend-to-disk world, where we have *three* separate implementations, with two in the mainline tree, and one very popular one, suspend2, with features that niether of the in-mainline implementations have, and with Pavel constantly casting aspersions at Nigel because he's splitting the development effort --- Not So Good.

I prefer to use the term "branch" to talk about a SCM and development series, and to use the term "fork" to talk about the political/project issues. So for example, even though Ingo Molnar's CONFIG_PREEMPT_RT patchset has been a very long-running thing, it is constantly getting rebased against the kernel, and there is no expectation that this would replace the mainline kernel. That makes a code branch, and not a fork.

So my suggestion is to let branches be branches, and to reserve fork for when there is an attempt to compete for developer and user attention. That is more or less the general understanding of the two terms, and trying to confuse the two only leads to confusion and a general muddying of the waters.

Regards,
					- Ted
Previous: Johannes SchindelinNext: Johannes Schindelin
Message 3 of 9 in “"Producting Open Source Software" book and distributed SCMs”
  1. Jakub NarebskiApr 29, 2007
  2. Johannes SchindelinMay 1, 2007
  3. Theodore TsoMay 1, 2007
  4. Johannes SchindelinMay 1, 2007
  5. Jakub NarebskiMay 1, 2007
  6. Linus TorvaldsMay 1, 2007
  7. Linus TorvaldsMay 1, 2007
  8. Jakub NarebskiMay 1, 2007
  9. Linus TorvaldsMay 1, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.