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.
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.
Lets start with an easy question.
What qualities does a replacement have to have, and what are the present alternatives missing?
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)
Never?
The quote continues being true. IMO the reason why Linus is dropping BK is the license and flamewars - BK is great, but maybe the free alternatives have got better in those 3 years and now they're "good enought" to use with the kernel. It'd be certainly better if bitmover would make BK free, but that's not going to happen.
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.
There is no need to remove the quote, it is correct. The BK software works fine. The problem is that Linus is not happy about BK licensing any more.
Why should they? The statement is stil valid.
The reason for not using BitKeeper is because of philosophy mostly within the community (my guess), not because something is wrong with the tool.
What BitMover has done is change the price of their product so to speak. Alot of Open Source / Free Software people didn't like the old price, and don't like to pay the new price anymore. That is why the tool is droped.
I only read slash. for the articles...
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.
So why doesn't our Open Source hero just fork the codebase, oh wait...
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
If this whole absurd scenario is not an object lesson on why not to choose proprietary software nothing is.
Imagine that. A company pulling their license and then refusing to even sell licenses to you or your employees.
evil is as evil does
Oooh---there's an attractive offer. Quit your job, but receive a free BitKeeper license. I wonder if Larry would make me the same generous offer?
Of course, expensive hardware has to be recommended to compensate for the fact that it's slow.
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.
If they had used an open-source SCM from the start and not changed things around, they'd be using RCS, which is totally useless for distributed development on this scale. If they had used an open-source SCM from when they started using an SCM, they'd be using CVS, which isn't much more applicable to the actual problem. BitKeeper was something that worked through the period when the available systems weren't really appropriate, and served as something to use while the problem space become sufficiently well understood that it could be solved correctly.
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.
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.
Isn't that exactly what SVN does?
SVN manages a history of trees, and has really no merge capability beyond what you can do by hand with diff and patch.
But I would argue that version control is NOT about the "nodes" on the graph of changes (like subversion), it's about the "edges" on the graph (the changes between nodes).
Think about it, which is easier to work with: 1) apply the differences between history state 234 and history state 628 to the files in history state 934, or 2) apply changeset #85 to the files in history state 934. Especially when you have hundreds of changesets to work with, coming from all kinds of different directions.
This is why Darcs or Arch will be the foundation for the next-generation version control, not CVS or SVN (which are basically the same).
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
Its not that Linus wasn't happy with the BK licensing, its that there were issues involved with developers (specificially a contractor under OSDL) trying to to reverse-engineer some of the features in BK.
Even though an agreement was reached that this developer would stop doing this, apparently he continued.
Larry McVoy (and BitKeeper) responded by saying that they were removing the Free BK license, and employees of OSDL (which Linus is) were not eligible for a free license under any conditions.
At this point Linus really didn't have a choice whether to switch SCM systems or not.
Kerneltrap story.
Read the 2nd paragraph under "Free Versus Free".
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.
Sure. You can't purchase explosives without a license. You can't buy many drugs without a prescription. You can't buy many weapons in USA, and in other countries you can't buy any weapons period. These are external restrictions imposed on the company, but the company refuses to sell you just the same.
But if you want an example of company's own decision, a most obvious is when the company refuses to sell itself to a potential buyer.
Finally, every store owner reserves the right to refuse the sale to anyone for any reason (read the fine print somewhere in the corner.) Even big stores, like Wal-Mart, have this rule, and some even put it to use. Try to buy something expensive and return it after 29 days; do it again and again and again, and see for how long the store will allow you to take advantage of them.
But I must admit that BK went farther than anyone else. I haven't heard before of a company that refuses to sell the product on basis of other activities of the buyer, or on basis of his employment. Still, the free market, as it is, permits even such unreasonable conditions. But you are also free to not use BK - and that's what I did on behalf of the business I work for.
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.
More accurately: BitMover loses all of it's advertising.
Seriously, have you ever head of BitKeeper outside of Linux discussions? Have you ever seen an ad for BitKeeper anywhere? Even if the quoted figures are right ($500,000/year), that's pretty cheap advertising for the amount of coverage.
(I've known about BK/BitMover for a long time simply because I know of Larry McVoy. But aside from that association, I've never heard of either.)
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
The situation is not at all symmetric.
With the GPL, you are never at the mercy of anybody: you can continue to use GPL'ed code no matter what its original author decides to do.
With a license like the Bitkeeper license, you are at the mercy of the copyright holder: when he decides that he has no use for you anymore or that he doesn't like you anymore, you are in trouble. It's his legal right, it's your stupidity to have agreed to such a license in the first place.
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
Yes, he considered GNU Arch. Linus knows as much about OSS version control as anyone on the planet.
I believe the main problem with GNU Arch is that certain operations are way too slow, especially for a project the size of the kernel. Linus said in one of his emails that Monotone looked like the best contender, and the Monotone website says that they use an essentially different paradigm from Arch. Iduno what they might mean by that, but it might be another thing that won't fit for the Kernel with gnu arch.
So yeah, he considered it. There is definitely no OSS bitkeeper killer yet.
There are no trails. There are no trees out here.
He's both, he's an insane genius. In 20 years time we'll all be saying "We should have listened to RMS". At times he can appear petulant but if I'd been spent a couple of decades warning people about non-free software and been derided while been proved right time and again I'd probably not be a happy bunny either.
One day we'll listen to him BEFORE things start to go all runny but that will probably cause the universe to end.
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.
True, but life is full of uncertainties. Maybe the next time I cross the road I'll be killed by an out of control car on the other side that plows across and into me.
All you can do is try to mitigate the risks. You have to weigh up the risk of a supplier of a preferred product going belly up (or just plain bat shit insane) against risks associated with using a less suitable but potentially safer alternative.
It's official. Most of you are morons.
> according to the original story, someone who was doing paid work for OSDL (Linus' employer) was reverse engineering the bitkeeper client in his spare time. For bitkeeper, this meant that OSDL was indirectly funding the creation of a free bitkeeper competitor, which goes explicitely against their license terms.
Yes. And I heard someone studying at the university of Berkeley also tried to reverse engineer bk. Larry must remove all the free license to student, as it helps university and they train people that want to reverse engineer bk.
And, I think someone had a grant from darpa, and, in its free time, tought about reverse engineering some part of bk. Clearly, larry must stop selling bk to any government entity.
And, beleive me or not, but some not-that-brillant computer user used microsoft windows to surf to slashdot, and thought about reverse engineering bk. Larry must prevent microsoft to get an bk license, as they are indirectly helping to create a competitor.
Bk may be a fine product. Larry used the kernel for marketing advantage. But, by acting like he did, instead of "preventing" competition, he actually send *hundreds* of the most talented developers in the world in SCM systems.
Hacking is about "scratching an itch". Thanks to his paranoia, Larry made himself a big itch to scratch.
Bitmover is fucked. He could have played nice and let people reverse eng bitkeeper. Linus would have still used the "real" one, it would have evolved into a standard, and bitmover would have made a truckload of money, possibly *owning* the scm space.
For a company that does almost all of its development on a single LAN (like mine), Clearcase's changeset-oriented streams and semi-intelligent merge features kick the crap out of CVS.
You're correct that dynamic views are too much trouble; I use snapshot views so I can control when I sync with the rest of the codebase.
I'm not saying Linus should use Clearcase, but it does have its place.
It's the double standards about this argument that bother me. If it was not for proprietary software, the GPL movement and the GNU free software directory would not exist.
You really should read some history of the whole open source movement. All the software Stallman was originally using WAS at least somewhat free (at least implicitly, if not explicitly). The FSF was created as a result of Stallman's later encounters with proprietary software, not because the mood just suddenly struck him after having been previously relying on proprietary software.
Your claim here fails for any number of reasons, the most obvious being that it doesn't even make logical sense. If there was no proprietary software, then by your own definition of the situation, everything else would HAVE to either free software, or we just wouldn't have any software at all.
Life is too short to proofread.