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.
Are you trying to subvert Linux? You must work for Microsoft!
Ba-dum-tish! Thank you, I'll be here all week. Try the veal, tip your waitress!
Here's why not (read the PS).
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
People who observe that stories concerning bitkeeper and linux have existed before should be moderated "redundant" so that the rest of us don't have to look at them. This is a new story on a new development, and it is difficult to intelligently discuss it in an article crapflooded by people complaining that this is a dupe when it is not.
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! :)
Bitmover dropping it's free version of Bitkeeper isn't a good enough reason?
..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)
I, for one, welcome our new karma-whoring cliche mixing overlords.
Excuse me, I don't mean to impose, but I am the ocean
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
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.
If they had used an opensource SCM from the start, they would not have to worry about changing things around now.
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.
Until Linus started using it for Linux, I'll bet most developers had never heard of BitKeeper. CVS, Perforce, VSS, and ClearCase for the past 4 years mostly seems to be what people would be using. Now all anybody knows is that these idiots dropped Linux support and burned a a great source of publicity (e.g. "our product is so good, one of the biggest OpenSource poster-child projects uses it despite it being closed and commercial!").
Now they'll be known for screwing over Linus Torvalds. I wonder how well they'll fare in future technology evaluations? I can hear the discussions now: "Gee boss, BitKeeper is nice and all but if they screwed over the guy who writes Linux , how do you think they'll treat us after they have our money?"
*** Sigs are a stupid waste of bandwidth.
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?
Wow. Amazing how Open/Free software can work together to the point of one project recommending that we should use their competitors' project in some instances. :)
Can you imagine a commercial software vendor releasing something like that?
It is also quite easy to use svk together with a central Subversion repository, to get the best of both worlds.
Actually subversion has a commerical backing. But those who wrote the thing simply wanted to keep the fanboys out of the LKML. And they are right in their analysis, they have a kicksass version control system but their approach is not suitable for the needs of the Linux kernel developers. What Linus and others really need is a highly distributed system and subversion (even SVK) is not exactly that, SVN is more like a drop in replacement for CVS without the problems CVS has, and it has its fair place in the world, and most who use it love it. The answer is just the style the people who do subversion generally have, very honest and professional.
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?
wow good link, I'd give you a mod point if you didn't have so many already.
When I read this on slashdot I thought, "I can't be the only one who has no idea what SCM means, my first thought was google, then wikipedia for SCM, never even thought of looking for bitkeeper on wikipedia.
This is really quite illuminating on a a topic I know nothing about. It's amazing the average linux user can be so unaware of controversy going on in the kernel development world.
Karma: Bad. Calmer, good.
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.
See Comments on Open Source Software / Free Software (OSS/FS) Software Configuration Management (SCM) systems for more information on OSS/FS SCMs. There are several relatively mature centralized SCMs, but the distributed ones are less mature. See paper for details.
- David A. Wheeler (see my Secure Programming HOWTO)
I'm sure Microsoft doesn't like the .mono project very much or the 1/2 dozen word document readers but you don't see them trying to enforce license agreements like the one BK was going for.
A lot of software wouldn't get developed if someone weren't paid to do it - after all, most people, given a choice, would rather "scratch an atch" - do what they enjoy working on - instead of working on stuff they find boring. So the boring stuff ends up having to be either paid "work for hire", or "contracted out", or "proprietary".
Unless you're suddenly going to rewire a LOT of people's brains so that they suddenly find boring projects interesting, there will ALWAYS be room for closed-source/proprietary software.
It's not anti-social. It's not even asocial. It's just the way things are. To castigate others for exercising their freedom of choice by using a mix of open- and closed-source programs as being antisocial is itself antisocial behaviour.
Heck, I use open-source for almost everything, but there is ONE program from MicroBitch that I actually find useful (Image Composer - I know, it's lame, so what ...) for the quick-and-dirty task of making logos, buttons, etc. I *could* use other programs ... that I don't is my choice. It doesn't make me antisocial, any more than using open-source makes me a smelly hippy.
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.
You are casually conflating "work for hire" and "non-free"!
Almost all the programming work I do is for a private company. It is work for hire in that sense. Some of it incorporates GPL software and thus is by necessity GPL licensed itself. The other software could just as well have been licensed as free software as well. It doesn't matter. Being free or non-free is orthogonal to being payed or not for programming.
It is only an issue when it comes to selling software itself, unenhanced by other software, as a product. Because it is what makes the Microsofts of the world, and because it is very visible, it feels like this is what programming is all about. But it really carries a disproportionate impact.
On your other point: we all have a choice, it is true. But you could say it is a choice to be antisocial
I think we can learn from the fiasco of relational database products on this one (i.e., the standard, SQL, is not relational at all, and the true power of relational databases has still not been implemented in an actual product).
FIRST come up with a rational, rigorous theory of version control. What is a "change"? What does it mean to apply changes and their inverses? What is a conflict? Etc, etc. Come up with theorems and rules based on that foundation.
THEN implement it all in a product. Or better yet, many products, but base them all on the same theory. I.e., let them compete on ease of use, security, speed, etc., rather than just who has the best ad-hoc collection of features.
The author of Darcs does have a "theory of patches" but it's not rigorous (by his own admission). However it's a start.
I think having a solid theory, divorced from any particular implementation, would be a great idea, would yield a consistent set of terminology, and would allow those tough corner cases to be solved with more understanding.
Does anyone else agree?
PS: McVoy himself has talked about the mix of theoretical and practical that BitMover employed to create BitKeeper. It's not just an academic argument. You'll get a better product if you THINK then ACT rather than leaving out the first step. And yes, besides the fact that it's not open source, BitKeeper *is* the best SCM system out there.
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!
As we all know, Linus has more resources at his disposal than Bill Gates. Why can't he just have some of his minions design, from scratch, a distributed source configuration management package that can do everything he needs, and have it ready within six months? Then, he and his crew could suffer along with Subversion and the distribution problems it will pose for them, for six months, before Linux can be hosted on Linus' own DSCM software.
It shouldn't be quite that hard to do, with all the resources he has... When Theo had a problem with (I believe it was) the license for the SSH program included prior to OpenBSD 2.6, he thought about it for a while and then busted out his own implementation. If he could do that, then Linus with all his resources can bust out a DSCM.
Yes, this post is totally sarcastic. But seriously, who said you can't take Subversion, rip out its guts, and make it distribution-aware.
The kernel development process *has* already changed. The 2.6 series (vs 2.4) really was able to use BK effectively in conjunction with those 'control model' changes. Linus has already said that he doesn't scale. So, the way it's being handled now is the way it will likely remain. He's not likely to change his behaviour because of a tool problem. He will find a new tool.
You are being MICROattacked, from various angles, in a SOFT manner.
"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/
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.
I have to disagree. The whole point of Open Source is freedom. Freedom from any group being able to "lock you in", freedom to adapt software to meet your own needs, freedom to share and benefit from each other's work so we can focus on solving other problems. This freedom leads to having more choice, but using closed-source software only reduces freedom and thus the choices you have available.
You could say that Open Source is about preserving choice.
Malloc___________________ I want to be free()!
With all the hand-wringing about coming up with non-infringing uses for p2p software for the Grokster case, I'm surprised no one has suggested that we take an open source p2p client and give it some version smarts...
my 2 cents...
So long, and thanks for all the Phish
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
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
We've been tolerating software with crippling capabilities and major usability issues for years, accepting or even praising their limitations as part of the FOSS Way of Things. CVS is a prime example, there are dozens more.
Of course this kind of software has been great, and we are all thankful to the people offering it, but it's time to place it in a museum, with a golden memorial plaque, and move on. The OpenOffice team got it right with their 2.0 version, even if it's still in beta: they evolved some cumbersome legacy applications to something sparkling that's a pleasure to work with (please don't bring up their use of Java issue). We should all benefit from their example.
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
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
The whole point of Open Source is freedom. Freedom from any group being able to "lock you in"
And yet, so many Open Source/Free Software people try to convince everyone that they should only use Free/Open Source Software, thus attempting to lock everyone in to using only that type of software.
If you truly believed in *my* freedom, you would respect my choice to use whatever I believe to be the most appropriate tool for the job.
It's official. Most of you are morons.
Great idea. Linus should stop writing kernel code (what everyone seems to think he's good at) and create *yet another* GPL revision control system to add to the 20-odd that already exist.
I wish I could shoot anyone who uses the cliched catchphrase "I for one".
The ones who still can't find work are people who should never have been let within 500 feet (that's 15,400cm, just to give you a rough idea) of a computer. They're people I like to call "Morons who got into computing because they heard it was a great way to get filty rich quick but are now on welfare and like to bitch about it on slashdot every day".
They are not going to be writing Linus's next SCM system. Their greatest concern right now is whether or not you would like fries with that.
"Avoid employing unlucky people - throw half of the pile of CVs in the bin without reading them." -- David Brent
UNIX was open source from AT&T
If we had a time machine handy, I'd like to introduce you to a room full of AT&T Attorneys.