Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 18 May 2000 20:32:17 +0000 (GMT)
From:      Terry Lambert <tlambert@primenet.com>
To:        nbm@mithrandr.moria.org (Neil Blakey-Milner)
Cc:        tlambert@primenet.com (Terry Lambert), rsidd@physics.iisc.ernet.in (Rahul Siddharthan), mellon@pobox.com (Anatoly Vorobey), chat@FreeBSD.ORG
Subject:   Re: Salon article on BSD
Message-ID:  <200005182032.NAA21198@usr08.primenet.com>
In-Reply-To: <20000517214857.A80602@mithrandr.moria.org> from "Neil Blakey-Milner" at May 17, 2000 09:48:58 PM

next in thread | previous in thread | raw e-mail | index | archive | help
> > > Well, whatever suits him -- and linux has improved phenomenally in the
> > > last 3 years, ie since its 1.2 days, so he must be doing something
> > > right.  One can't say what *would* have happened if he'd done things
> > > differently.  
> > 
> > If he had adopted a constraining tool like CVS, Linux would have
> > forked on no less than 3 (mathematically) documentable occasions.
> 
> What do you mean by "constraining"?

It constrains you to a single line of developement.  For example,
if FreeBSD wanted to work on a PPC port, there is a single line of
developement called "current".  The work could not occur in the
"current" source tree, since it would be unacceptable to those
who hold the keys, who are people not using PPCs, by definition.
Like the Alpha port, it would have to occur in a vacuum, when the
current tree was relatively quiescent, and be followed by the risk
of non-apporval, and the requirement of a heroic integration
effort (such as we saw on the part of the Alpha team).

Really, you want "The FreeBSD" to be an agregation of lines of
developements.  This would permit, for example, multiple competing
implementations of some subsystem to be worked on under source code
control, without them conflicting.

CVS as it currently stands does not permit this.  One way to
address this might be to allow importation via CVSup to occur
onto a vendor branch in the workers local repository; then a
hierarchical arrangement of CVSup clients and servers could be
made to support multiple lines of develeopement.

See http://www.bitkeeper.com/ for more details on multiple lines
of developement (which they call "LODs").  Perforce also supports
this concept, as do the CASE tools source code control components
I have used on HPUX and VMS systems.

Bottom line: adequate tools which don't themselves impose any
irrational constrainsts still cost real money.


> Linus's stated objection to CVS is that it leads to "oh well,
> put it in, if it breaks, back it out", which seems not to
> imply constraint.

This is a rationalization.  There are good reasons to avoid CVS
(as opposed to avoiding all source code control systems), but
this rationalization is not one of them.  Rationalizing this way
is a sign of intellectual laziness.  Given the venue for the
article, that's potentially excusable (though I personally would
not have answered off the cuff, as I would consider it duplicitous).


> Linus's personal multi-tasking abilities (as impressive as
> they seem to be) are more likely to constrain development (if
> that's what you mean) than a CVS tree would.
> 
> Or do you mean Linus's non-use of CVS has led to no forks
> because it's impossible to keep up with the changes and what
> the purposes of them are?

No.  Linux has nearly forked 3 times that I can document, and
has been builting towards such an event at least 5 additional
times.

It's amazing to me that one could be a member of a society, yet
not study the properties of that society with all of the tools
at ones disposal.  Even as someone who has only contributed to
Linux under various pseudonyms or by forwarding code through
other people, and thus a relative outsider, I definitely am
aware of "the Alan Cox tree" and "the GGI incident" (as examples).


> I imagine that a CVS tree (of the Linux kernel) would help a lot
> in keeping concurrent development of an alternate kernel with an
> increased number of committers (in the alternate kernel).

I imagine it would fracture the Linux community into at least 5,
perhaps more, pieces.  The Linux community, as the Internet's
largest society/organism to date (and thus worthy of scholarly
study for that reason alone, if no other) has outgrown the point
at which CVS, as it currently exists, would constrain its growth.

If Linus were to shove CVS down people's throats, the community
would immediately fracture based on the ability to track the
pieces they wanted from "The One True Linux", and throw out
what they considered extraneous crap.  Right now, everyone gets
the same thing, and opinions about what is crap or isn't really
don't matter one way or another toward fracturing th community.
It is only when a significant piece of work, such as GGI, remains
unacknowledge and/or unintegrated, that tensions rise.  In the
three most important incidents I have documented, Linus has
caved in on every one of them, rather than face the spectre of
schism.


					Terry Lambert
					terry@lambert.org
---
Any opinions in this posting are my own and not those of my present
or previous employers.


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-chat" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200005182032.NAA21198>