Linus Drops BitKeeper
ravenII wrote in to mention a story running on CNet, which discusses Linus Torvald's decision to no longer use BitKeeper. From the article: "Linus Torvalds is looking for a new SCM for his project's source code after a conflict involving the current management system, BitKeeper. 'I've decided to not use BK (BitKeeper) mainly because I need to figure out the alternatives,' Torvalds said in a posting. 'Rather than continuing things as normal, I decided to bite the bullet and just see what life without BK looks like.' Coverage on the BitKeeper announcement from earlier this week is also available. Update: 04/10 16:36 GMT by Z : Updated to reflect the story's origin.
Here's why not (read the PS).
How about reading Subversion's writeup on why that's not a good idea?
[
The Subversion devs have already stated that Subversion is a poor choice for kernel development. In fact, the title of the page I just linked is "Please Stop Bugging Linus Torvalds About Subversion." Plus, Linus himself said "Don't bother telling me about Subversion" in his e-mail.
if you read the article, you would see that linus adresses this.
As yet there is no good Linux client for it (V6 at least)... just wait for VSTS (Team System)... it will have 3rd party clients for just about every platform when it ships.
Help Brendan pay off his student loans
SVK is a very sweet extension to SVN and actually rocks my world! :)
Don't save Windows XP! http://www.petitiononline.com/jjw1xp/petition.html
Linus is looking into Monotone as you can see here.
Might want to start figuring out how to migrate to that, instead of pestering him about subversion.
Perhaps it would be helpful if you would read the Wikipedia article on Bitkeeper, which explains what Bitkeeper is, why it is relevant to the linux kernel, and why its relevance to the linux kernel might be controversial enough to make it a slashdot news item.
Maybe the slashdot eds should start [?]-linking Wikipedia articles in story blurbs the way they used to with Everything2...
Irritable, left-wing and possibly humorous bumper stickers and t-shirts
Primarily due to frustration with the speed of existing solutions, and the fact that they do badly with huge numbers of tiny changes to large projects (which is what he deals with), he's started writing something that he claims isn't an SCM. What it does is store versions of trees of files and allow them to be annotated. This is different from an SCM in that it lacks support for merging changes to get a version that nobody created before out of multiple versions that people created independantly. This makes it a history archival program rather than useful for collaboration directly.
On the other hand, it's self-hosting and sparse (the previous thing he wrote when confronted by the inavailability of something he wanted) is also available stored in it. Probably, be the middle of next week (if not the end of the weekend), he'll have if set up as sufficient for his purposes, and other people will be filling in support for the way they work.
If they had used an opensource SCM from the start, they would not have to worry about changing things around now.
Subversion is basically CVS with some problems fixed (e.g. moving of directories is now possible). The Subversion people say they wouldn't use Subversion to manage the kernel...
Linux is not Windows
CVS's centralised repository design is more or less exactly the opposite of what Linus wants when it comes to a version control system. No distributed repositories, no foreign branching, no dependency tracking between changesets, no atomic commits, expensive branching, etc, etc.
CVS may be the solution to some things, but it's not a solution to the problem Linus is trying to solve.
How about Bazaar-NG? It looks like it's a design based on GNU Arch that can do either centralized, or decentralized stuff.
http://lwn.net/Articles/131313/
Check the "made the first version available" link towards the top
I don't have time to make a sig
Is Subversion decentralized? Even the Subversion maintainers admit that the Linux kernel development atmosphere doesn't mesh well with the centralized CVS/SVN model. There exists SVK, a decentralized hack on Subversion, but is it mature?
It is also quite easy to use svk together with a central Subversion repository, to get the best of both worlds.
Also, you indeed were living in a shoebox :-) because BK was always licensed on a condition that the licensee does not work for a competitor, and does not work on a competing product. The definition of "competing" was at BK owner's discretion, and a lot of Subversion folks were denied the license two years ago. This was a bad deal from the start, and quite a few people said so on LKML. They were right. Search Google or LKML archives, they should have lots of discussion about that.
I've seen stuff from the subversion people asking people not to bug Linus about using subversion (it isn't distrubuted, can't easily be made distrubuted, and they ask people to quit bugging Linus about using it (they agree that it isn't what Linus is looking for). Linus built something called GIT that uses part of the Linux kernel to manage merging large trees and portions of trees with date/time/directory information. He has already shot down people who ask about using SQL (and related databases) as he states that "they are too generic and too slow", and has stated that he can stat an entire tree several hundred times more quickly than the fastest database, becuase his entire engine is optimized for kernel work. Linus has already taken a week off to do bitkeeper replacement/tool creation. It may take another week before the whole thing is finished. It seems Bitkeeper clarified how Linus can maintain large chunks of tree (big merges and so on), and Linus wants to take the parts he liked in Bitkeeper, replace the parts he hated, and go with that. Tweaks to follow.
Emacs was the start of the GNU project waaaay back then what non-free program did it copy?
EDLIN, I believe.
According to Bruce Perens (I think), in posting on /., the situation is not so simple.
Larry kept changing the terms of the free licenses
The OSDL employee was doing the reverse engineering in his own time, he was not being paid by OSDL to do it.
How would you like your emplyer to tell you what you can and cannot do in your spare time?
"The spirit of the Bitkeeper license is the spirit of the whip hand.
b rowse_thread/thread/a98de7edab73f365/7d68ee9f364e9 3f6
It is the spirit that says, "You have no right to use Bitkeeper, only
temporary privileges that we can revoke. Be grateful that we allow
you to use Bitkeeper. Be grateful, and don't do anything we dislike,
or we may revoke those privileges." It is the spirit of proprietary
software. Every non-free license is designed to control the users
more or less. Outrage at this spirit is the reason for the free
software movement. (By contrast, the open source movement prefers to
play down this same outrage.) "
- Richard Stallman Oct 13 2002, 3:50 pm
Maybe he is not a mad man, but actually a very wise man.
Here is the discussion link: http://groups-beta.google.com/group/linux.kernel/
I can't count the number of times I've gotten build failures because I updated my view in the middle of someone else's big commit. WTF is that all about?
If I wanted that, I could use SCCS.
And don't get me started about the voodoo that is config.spec.
"Avoid employing unlucky people - throw half of the pile of CVs in the bin without reading them." -- David Brent
Not sure why anyone hasnt mentioned darcs - being very similar to bitkeeper and arch. And free.. and so on.. I personally use darcs over anything else, since changing from svn.. I wont be going back :-)
www.darcs.org
If a company does that often enough, it will lose all its customers as they migrate away to a less risky company.
I have no idea why the BK people have done this, but it strikes me as being an incredibly foolish thing to do.
This whole absurb scenario is an object lesson to not choose proprietary software produced by idiots.
It's official. Most of you are morons.
Unless you are on the same LAN as a Clearcase server, the thing is treacle slow because it sends dozens of packets flying back and forth just to figure out what items to put on a context menu. If you're using a VPN then creating a snapshot view can take many, many hours and even simple things like checkouts / checkins / diffs take minutes.
And because it works so badly over the WAN, if you have multiple sites you must replicate - more expensive servers, more admins and more licences.
It's not even a good source control system. It doesn't do anything aside from a dynamic view that can't be done by most other systems. Dynamic views are more trouble than they're worth anyway.
I truly pity companies who "bet the farm" on this junk. I pity IBM who had a perfectly usable source control system in CMVC who had to switch to this Rational junk.
For all its faults even CVS would be better. And with Subversion being available and UI frontends like TortoiseSVN, Subclipse etc. there really is no reason to be stuck with Clearcase.
No, not really. What Linus is doing looks completely different. It is quite similar to Monotone if anything, in fact. It has quite a good description of itself in the README (skip the top part there :-) ).
One consequence of what he is doing is that it is trivial to do e.g. pulling from remote repositories (basically just two rsync commands), or diffing arbitrary two trees. You can see my scripts as an example.
It's not the fall that kills you. It's the sudden stop at the end. -Douglas Adams
And what you write is exactly what Linus is doing now. It is not a full version control system, but it can likely do the basic job for the kernel, especially for distribution of the tree history between developers; it is probably likely that they will use (test, improve) various version control systems on top of this, actually. (Which should be possible.)
It's not the fall that kills you. It's the sudden stop at the end. -Douglas Adams
There were and are non-free versions of Emacs.
There is Gosling Emacs, which is non-free and the source code is not available. Stallman did NOT 'invent' emacs.