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.
I believe even Microsoft don't always 'eat their own dogfood' on this one.
Well, there's always CVS... *sigh*...
Or you could teach your code to two hundred trained squirrels, a la Tim Burton. Then every time you changed some code, you could train another squirrel. Not only would you have an army of Code Squirrels at your command, but... eh, you'd probably be locked up...
I am scientifically inaccurate.
How about reading Subversion's writeup on why that's not a good idea?
[
Bitkeeper loses only customer
Visual Source Safe!
See my journal for slashdot ID's by year. Mine created in 2005. http://slashdot.org/journal/289875/slashdot-ids-by-year
if you read the article, you would see that linus adresses this.
Lets start with an easy question.
What qualities does a replacement have to have, and what are the present alternatives missing?
SVK is a very sweet extension to SVN and actually rocks my world! :)
..I hate how everybody has critized Linus (specially the RMS/GNU front), when he never forced people to use BK.
I mean, when Linus started to use BK he promised things would be at least as good as they were before - and it's true (they've been better in fact), people still gets -rc's in GNU diff format at kernel.org. The official way of distributing patches has always been "clean", I don't know why people whined so much about BK, it's OK for me if Linus wants to use a propietary tool himself, as long as I'm not forced to use it. I've certainly not used or needed to use it for years, and I'm one of those people who tries -mm and -rcs all the time...
(and those who claim that people should behave differently and "give example" just because they're "leaders" can go to hell)
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
Why not use CVS?
Now that's a great idea. I'm sure Linus didn't even look at that option when he decided to use a SCM!
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.
Does anyone happen to know whether GNU Arch has been considered? I've been using it for a while and find it quite good (it's not perfect, but it's the best versionning system I've used so far).
In post-9/11 America, the Department of Homeland Security has noticed an increased level of chatter on the terrorist communications lines. Among the discussions has been unusually prevalent talk of cliche enrichment. We suspect that these terrorists have allied with "Korea", "Soviet Russia", and "Natalie Portman covered in hot grits" to obtain the sophisticated equipment necessary to enrich cliches. We have no choice but to amend the Constitution to disallow speech that contains cliches.
To enforce this amendment, any discussion involving cliche proliferation will be punished with negative moderation. For good measure, the poster will also be sent to Guantanamo.
So when are they going to remove the quote by Linus?
"BitKeeper has made me more than twice as productive, and its fundamentally distributed nature allows me to work the way I prefer to work - with many different groups working independently, yet allowing for easy merging between them." -- Linus Torvalds
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.
The problem is that Linus is not elligible for bitkeeper licensing anymore.
In addition to dropping the free version, Bitmover is refusing to sell even commercial licenses to the OSDL or it's employees, which includes Linus Torvalds and Andrew Morton.
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
Somehow Arch was immediately mentioned on the original thread about Linus's intent to switch away from BitKeeper, but somehow only Subversion has been mentioned on this one. Arch was created specifically with the goal of replacing BitKeeper as the SCM for the Linux kernel source, as it says on their web page:
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?
If a comparable open-source SCM had existed at the time, I'm sure they would have considered it. (and no, CVS didn't count as comparable
I don't care if it's 90,000 hectares. That lake was not my doing.
How much has Linus use of Bitkeeper hampered the development of a free software alternative? I mean, if Linus had used a free SCM since the beginning, chances are that much more effort would have invested in that very same system to make it better. Unfortunately all the past publicity has helped only Bitkeeper instead of the free software movement.
Thank you
I absolutely adore the way that people don't have the balls to post with a username any more.
The whole point of Open Source is that people have CHOICES ABOUT WHAT THEY USE TO DO A TASK. If they don't like it they can tweak the code so it does what they want.
Last time I checked, using BitKeeper constituted a CHOICE on the part of Linus. One of the core principles behind OSS.
CVS is abysmal, and Subversion doesn't fit the Linux development model. Proprietary software may be evil, but if it's the best tool for the task then why should people deal with inferior OSS crap, which may need serious hacking to make it do what they want, when there's the option - the CHOICE - of using proprietary software?
How many people can read hex if only you and dead people can read hex?
Uh, last I heard, that's neither illegal, immoral, or unexpected when you release a product to the world. I'm sorry they're unhappy about it, but it seems a bit naive to think that it won't happen and a bit stupid that they'd PO one of their most visible references over it.
That is all.
tired of people trying to reverse engineer their software
This is exactly the core issue, and exactly why BitKeeper isn't worth considering.
So which do you take issue with?
1. Writing non-free software is antisocial
or
2. If a job is based upon antisocial behaviour, one should get some other job
Personally I can't see how you could argue against 2, unless you are in fact antisocial and just don't care. RMS has been making a case for point 1 for years now, and the recent news with regards to BK is more supporting evidence for his argument.
Reading your comment to the interview, I can't understand your vehemence. It's irrational. If you have a choice of doing something bad or doing something good, why insist that it's okay to do the something bad? I don't want to put words into RMS' mouth, but I get the impression that when he states something like: "It is better not to program at all than to program non-free software", it's not a statement about the utility of free versus non-free software -- as you noted in your comment, a lot of non-free software is very useful -- but instead it is a statement concerning how programming as a practice in today's society should be carried out. Programming non-free software is not bad because it makes useful software -- that would be silly. It's bad because it supports a system in which non-free software proliferates and causes huge amounts of waste. It is essentially the same point as the one you quote.
The horrible irony of it all is that most non-free software is non-free by default, not because the owners of that software are profiting significantly by having it be non-free. Most software is written for internal use for internal projects. Embedded software is usually specialised to its hardware and of limited use to competing manufacturers. In as much as it is not limited, a culture of free software allows the programmers to write original software, not re-write what others have done hundreds of times before.
If hypothetically free software were to become the only legal form of software as of tomorrow, the vast majority of programmers would still be in a job. And those jobs would be better.
Thing is, this "new story" brought nothing new. We knew that he DID drop bitkeeper, from the three 5,informative moderated posts which linked to LKML in the previous story. Now we can read that very LKML announcement in this slashdot story aswell. We knew that he won't pick subversion from the previous story and from the subversion developers aswell.
What is new, that Linus wrote his own SCM (README here)
Maybe it will appear in 1-2 days as another slashdot story?
It takes a man to suffer ignorance and smile
Be yourself no matter what they say
In all these discussions the question seems to be:
...
What tool can we find to fit Linus' methodology.
The question that nobody ever asks is:
Do Linus' methodologies actually benefit the project?
I'm going to say something that will make people angry, but I don't mean it as flame bait:
The Linux kernel is in absolute disarray, has been since 2.2.x, and is only getting worse as the project grows.
The kernel development process is a highly distributed one, with individuals all over the world implementing their own corner of the universe and sending it in diff form to the Great Linux Mutex in the Sky: Linus.
All these people, all over the world, doing things their own way. Limited cohesion, inability to pick a good design and stick with it for more than 5 minutes. Here are two examples from the stable kernels
Firewalls:
2.0.x: ipfwadm
2.2.x: ipchains
2.4.x: iptables
Event Handling:
2.0.x: None
2.2.x: None
2.4.x: dnotify
2.6.x: inotify
The VM system has been swapped out - several times! - in "stable" kernel branches. Nowdays Slashdotters are saying that it is the distribution's responsibility to maintain a stable kernel tree.
So, here's my point. Maybe the BSDs really have something going for them by maintaining a centralized development model where major changes are planned, documented, and subjected to stringent review across the board before being included in the kernel.
Here are the above examples for FreeBSD:
Firewalls:
2.x: ipfw & ipf
3.x: ipfw & ipf
4.x: ipfw & ipf
5.x: ipfw2 & pf
Event Handling:
2.x: none
3.x: none
4.x: kqueue
5.x: kqueue
FreeBSD consistently implements well thought out systems and incrementally improves them over the years. Time and time again FreeBSD issues solid stable releases. Even the releases that are publicly declared not ready for production are more stable and have fewer dark hairy corners than Linux.
Maybe it's time for Linus to re-evaluate his model and bring some true software __engineering__ to the Linux development process. Instead of being the Great Mutex in the Sky, he can be the great organizer and enabler of an organization of people working together to implement well thought out, well designed systems.
Just a thought from an anonymous coward.
The most important thing that Bitkeeper did was to show the developers what was possible with the right tools. Anyone that reads the LKML knew that this day would come sooner or later and many of the SCM developers have used the time to improve their tools. What we really need to do is thank Larry for the use of his program (it was a great help) and move on. I don't think that Linus and the other kernel developers will ever go back to the days before fine grained changelogs, distributed source trees, and the ease with which patches from any one tree can be applied to any other tree. I think, if anything, that the biggest thing that dropping Bitkeeper will do at this point is to accelerate the development of better (and more distributed) SCM's.
Thanks Larry! And more importantly: Thanks Linus, Alan, Andrew, Marcello, Rik, et al. Your work and dedication is much appreciated! ;-)
P.S. Kernel.org has a new SCM written by Linus (in his directory) that is available for your perusal.
Restore America: Dr. Ron Paul for President!
"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/
So, in conclusion, big frickin' deal. BK got a few years of valuable, free beta testing, Linus got some work done, and the Open source folks got a reminder as to why the Free source folks got religon.
Luke, help me take this mask off
And you know that Linus reverse engineered UNIX? He recreated a system with the same API. What is wrong with that? There would be no progress at all if we weren't "stealing" each others ideas all the time. Neither in science, nor in art, nor in (software) engineering.
I find the current brainwashing efforts of "intellectual property" proponents to make us believe there is anything wrong with reverse engineering highly immoral, contradictory with human civilization and ignoring its history.
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