[ale] Linux Kernel Change Control + CVS

Dana Powers dana at slothlovechunk.org
Thu Nov 7 10:50:50 EST 2002


Linus never used CVS, because it was never able to support kernel
development needs. Before Bitkeeper, Linus maintained the source code
himself without a source versioning system. The kernel got too big and
this no longer worked, so now he uses bitkeeper. Bitkeeper is very
different from CVS, although they both attempt to manage version
control. Apart from CVS's know deficiencies: No meta information, no
directory handling, bad binary file support, poor branch/merge
support, not very fast on large file sets, etc. Dont get me wrong, I
believe CVS is one of the primary reasons that the free software +
open source movements are as strong as they are right now, but those
are pretty big flaws when you are talking about a project the size of
the linux kernel.

Whereas CVS has one central repository and developers check out code
from that repository, and commit changes back to that repository,
bitkeeper gives every developer their own repository. So you dont
'checkout' code, you actually clone the base repository. Then you
check in any changes to your own personal repository. This gives you
much more developmental freedom to try out weird stuff on your own
code base. For example, I frequently will work on a large project and
want to code up an experimental feature. It helps to be able to break
that work down into little chunks that I can diff against, log notes
to, etc - but with CVS (without crazy branching/merging and lots of
support from the projects cvs admin, or creating your own cvs
repository and importing the main codebase, then trying to export out
and re commit to the main repository when you are done...) you cant
really commit anything that you dont want the whole group to
immediately have access to. When you are ready to send your changes
'upstream' with bitkeeper, you create what is called a ChangeSet - a
collection of personal diffs that you have commited to your personal
repository that you want the rest of the developers to have access to.
Bitkeeper then has really good support for merging in various
ChangeSets, including nice visual tools (visual=curses or tcl I
believe), a mediator that lets you accept some ChangeSets, and reject
others (I think?), and get ChangeSets from different sources. Add on
top of this, good support for meta information(including file
permissions) and directories (Im not familiar with the binary file
support), and you have yourself a really nice distributed version
control system.

Of course, most of us have read RMS's commentaries on bitkeeper. No,
its not Free Software. Yes, it has a license that is kinda scary. But
when it comes down to it, Linus has said _necessary_ functionality
trumps free software ideology. My experience with BitKeeper has been
with MySQL development, and it works fairly well.

Hope this helps, and I dont bore you guys too much
dpk
----- Original Message -----
From: "Mike Millson" <mgm at atsga.com>
To: ale at ale.org
To: "ALE" <ale at ale.org>
Sent: Thursday, November 07, 2002 9:57 AM
Subject: [ale] Linux Kernel Change Control + CVS


> I read where some time ago Linus stopped using CVS for Linux kernel
> development and started using a commercial version control system.
Does
> anyone know the name of the software? If I remember correctly, one
of the
> reasons Linus did this was because this other software does not
store code
> in a central repository but distributes it amongst users. Why is CVS
not
> good for Linux development? Can anyone elaborate on Linus' point?
What's so
> bad about a central repository and CVS?
>
> Thank you,
> Mike
>
>
> ---
> This message has been sent through the ALE general discussion list.
> See http://www.ale.org/mailing-lists.shtml for more info. Problems
should be
> sent to listmaster at ale dot org.
>
>
>


---
This message has been sent through the ALE general discussion list.
See http://www.ale.org/mailing-lists.shtml for more info. Problems should be 
sent to listmaster at ale dot org.






More information about the Ale mailing list