Bitkeeper News Redux 278
gosand writes "Newsforge is running Part 1 of a two-part interview with Bitkeeper author Larry McVoy. You may recall that there was quite an uproar in the community over Linus choosing to use a proprietary source management tool. Although there are no hard numbers, the estimates are that Linus has been 10x more productive with BK."
Pretty impressive productivity increase (Score:5, Insightful)
I'm no mathematician but I'd say that's a decent way of estimating their productivity increase. But does BitKeeper actually help that much? Anyone who has every used it in a production environment please comment.
Linus is processing around 50 patches a day, 365 days a year.
That's a pretty incredible number. If that's the truth, then I'm very impressed.
is there more than bk involved??? (Score:4, Interesting)
Re:is there more than bk involved??? (Score:5, Funny)
Although there are no hard numbers (Score:5, Insightful)
Actually, it's meaningless without looking at other factors. Even the concept of more change is so open ended it tells us nothing. As Linux gains users it will certainly increase in these numbers, there is no strong indication that bitkeeper is a factor at all, or how much of a factor it is.
Although there are no hard numbers, the estimates are that Linus has been 10x more productive with BK.
Following the statement that there are no hard numbers , the ten percent figure seems more like a number pulled out of thin air and selected to not be large enough to be called outrageous but big enough to encourage people to make a change. That's not to say we are not talking about a good tool here (I have no opnion on that issue), but this is much more hype than a valid study.
10x - I misread it as 10%! (Score:3, Insightful)
Actually, Linus doesn't do very much programming (Score:2, Insightful)
Just from following the kernel development from the outside it is obvious that things have been working much more smoothly after Linus started using bitkeeper than it has in a long time. In the past there has been several periods where t
Re:Although there are no hard numbers (Score:5, Insightful)
Re:Pretty impressive productivity increase (Score:2)
Bullshit. The guy never gets out to take a walk, or go for a drive in that yeallow sports car of his or, heaven forbid, take his kids to the fucking zoo for the day.
Yeah, he just sits there, 365, 24x7, turning out patches.
Please.
Re:Pretty impressive productivity increase (Score:2, Informative)
Re:Pretty impressive productivity increase (Score:2)
Maybe that was an average ?
Re:Pretty impressive productivity increase (Score:4, Insightful)
I'd be willing to bet that KDE and Gnome have accelerated a lot since Linux moved to BK, but I don't think that anyone would assert that BitKeeper should get the credit.
In short, that move happened at a fixed point in time when a whole lot of other interesting things were starting to happen. Was BK causative or correlative? I'd put money on the latter.
Success due to Bitkeeper? (Score:5, Insightful)
There has been a noticable improvement in the 2.5-2.6 cycle compared to 2.3-2.4. Linus and the team has done a super job. Bitkeeper gets a lot of credit for it. I can't help but wonder if similar results would not have been achieved with CVS, Subversion, or arch. Are there any features Bitkeeper has that the free alternatives do not?
The GCC project is of comparable complexity to Linux. They use CVS with some success, don't they?
Re:Success due to Bitkeeper? (Score:5, Interesting)
BitKeeper has distributed revision control and history-sensitive merge support. Of the alternatives you mention, Arch is the only one which is comparable.
The GCC project is of comparable complexity to Linux. They use CVS with some success, don't they?
Some, largely because they have a great deal of process set up around beating CVS into submission. It's much more work and dicipline than most teams are willing to go through, though.
Slashdot Sigs (Score:2)
Re:Success due to Bitkeeper? (Score:2)
Re:Success due to Bitkeeper? (Score:2, Interesting)
[NT] bk's syntax is no prize pig, either (Score:2)
Re:Success due to Bitkeeper? (Score:5, Insightful)
Yes CVS lacks lots of features that may be important in some software projects, on the other hand it is pretty much bug free, has seen a huge amount of usage, is very simple to use (it takes me all of 5 minutes to get a new user up to speed with it), has no silly file locking, has a simple text-based repository which is in fact very robust.
I never tire of saying that I've been using CVS for nigh on 12 years now, that I've also used SCCS, raw RCS, and Perforce, which everyone swears by.
By and large CVS is the simplest to use and does get the job done. Whereas I couldn't get any of my users to use RCS and that a lot of them don't like Perforce because of the individual file locking feature. I have had exactly zero problem with CVS, and this is an experience that is reflected pretty much around the globe.
Regarding the issues that SourceForge has, I'm not sure it would be helped by switching to another source control system. Sourceforge doesn't appear keen to try, they must have good reasons for it.
Now for some things you are right, CVS is not the right tool. We are talking massive complicated and distributed systems like the Linux kernel. In this instance we are talking about sophisticated users and developers who know the value of using the right tool for the right job, even if the tool is more complicated at first. Neither BK nor Arch and not even Subversion are as simple as CVS at first.
CVS is a decent answer to a very important problem. It doesn't have to go, developers need to be aware of the alternatives when they reach the limits of what CVS can do.
Re: Large CVS projects (Score:4, Insightful)
The FreeBSD project also uses CVS for development. Keep in mind that FreeBSD is a kernel AND an userland, which might qualify it to be an even more complex project to manage than Linux.
And on a lesser scale, there is also the example of the Mozilla project which uses CVS with a good share of success.
Re:Pretty impressive productivity increase (Score:5, Funny)
Active cooling, a dedicated fan, a big heat sink, and he should get up to 60-75 patches a day. No need to wait a year or two for Moore's law -- these changes can happen today!
Re:Pretty impressive productivity increase (Score:5, Funny)
Of course, people might think you're odd if you're walking around on a hot day with a HSF going full blast on your forehead, but hey, it could be the new geek trend in hot climates!
FOREHEAD HEAT SINKS!
-Z
Re:Pretty impressive productivity increase (Score:5, Funny)
You must be a chick magnet.
Re:Pretty impressive productivity increase (Score:2)
Re:Pretty impressive productivity increase (Score:4, Funny)
On the other hand, it would make him look more like Tux.
Re:Pretty impressive productivity increase (Score:5, Funny)
Re:Pretty impressive productivity increase (Score:2)
Re:Pretty impressive productivity increase-Methods (Score:3, Insightful)
In other words, this article basically means that using -some- source code management system makes you more productive than plain old backups. One word: duh.
Move along. Nothing to see here.
Productivity (Score:5, Insightful)
And I'm 1000x more productive with CVS!
Instead of pulling numbers out of the air, just say the guy likes the tool and performs better with it. Sheesh.
Re:Productivity (Score:5, Informative)
Did you bother to read the article before posting? They say the real number is closer to 2.5x.
Sheesh.
Re:Productivity (Score:2)
Sheesh.
Then why didn't the article poster say that instead? Sheesh.
Re:Productivity (Score:2)
lol - what next, you want the editors to make sure there isn't a dupe already out there?
-- Ravensfire
Re:Productivity (Score:4, Informative)
Ahem. I can field that one... :-)
OK, I probably should have used the word "perception" instead of "estimation", because the estimates were about 2.5x.
Here is what it did say in the article:
Re:Productivity (Score:2)
You look like a good kid. I'll let you off with a warning this time. Just don't do it again!
Re:Productivity (Score:2)
Re:Productivity (Score:5, Funny)
I'm 10x more productive when I don't read
Re:Productivity (Score:2)
I don't think I could say that for myself because 10 x 0 is still zero.
I would have that simply say that I am productive when I don't read /. at work. When I read /. at work, my productivity isn't mostly dead, its all dead.
Re:Anything else than free software is not kosher (Score:2)
One night he goes to his bosses house for dinner (the owner of the propane store) and the boss has an electric stove. Linus is a lot like Hanks boss. He uses what works for him, because it works, but because of some unnatural connection to a belief.
The right tool for the job (Score:3, Insightful)
No interest whatsoever in being a flamebait here so...
Though no hard numbers exist and this is largely speculative all around, one would have to applaud Linus for using any tool that is making him 10x more productive.
BitKep'R (Score:4, Interesting)
Interesting... and BTW, is BK just another SCM(is that the right acronym
If it is, I'm using Subversion, and it's nice ^^
Re:BitKep'R (Score:5, Informative)
Re:BitKep'R (Score:2)
Incidentally, Arch is where SVK got its star-merge algorithm.
Re:BitKep'R (Score:4, Informative)
Subversion is a CVS replacement. It is not and will never be as powerful as Bitkeeper. It does its job as a CVS replacememnt well.
The only Free SCM that can be compared with Bitkeeper is Arch [srparish.net]. Arch should be able to replace Bitkeeper in the future if not already (it's been a while since I used Arch). It is Free Software and part of the GNU Project now too.
Re:BitKep'R (Score:4, Informative)
Arch is not the only one, monotone [venge.net] is another, cleaner tool.
Re:BitKep'R (Score:3, Informative)
Arch is groundbreaking, but it was designed in a rather ad-hoc way, and it _really_ shows. You have to know a lot about the implementation details in order to get stuff done in it.
Darcs is much, much easier to use, and is supported on more platforms (including win32). The shortcomings include slow execution time (due to a complex merging algorithm that's part of the reason it's much easier to use) a
Re:BitKep'R (Score:4, Informative)
I've used a bunch of them over the years, it's a bit of a hobby for me. I won't try to do a comparison of them all, there's one
here. But I'll give some general impressions. BK is definetely the best of the bunch so far. The distributed nature, the solid tools around it, the don't lose any piece of change data philosophy.
I've been on an Arch kick though, it follows the same principles, distributed repositories and all that, but there aren't as many tools around for it quite yet, but I think it's building a community around it. There are some idiosynchrocies that bug me though.
Still haven't gotten around to playing with Subversion, it just didn't seem ambitious enough for me to bother with.
Perforce and CVS are the other ones I have the most experience with. They are pretty typical for a client-server type model of SCM, with Perforce being well supported on the commercial end. That external database gets large and slow though if your tree gets too big.
Re:BitKep'R (Score:2)
You don't get it because it's wrong :P. It's source code management, hence it managing source code.
I don't see (Score:4, Insightful)
Re:I don't see (Score:4, Informative)
I usually don't, butif you read the BK license, you will notice that it disallows you to work on competitors (including CVS and subversion) if you are a BK user. I think at least one of the subversion developers (who also contributes to the Linux Kernel) is not allowed to send Kernel patched using BK because of that (he sends them via email).
Re:I don't see (Score:3, Interesting)
Re:I don't see (Score:4, Interesting)
i) your Licensed Product shall not substantially duplicate the capabilities of Microsoft Access or, in the reasonable opinion of Microsoft, compete with same;
MS Scaremongering? (Score:3, Interesting)
Re:I don't see (Score:5, Insightful)
In the BK instance, you are NOT using BK as the basis to develop a competing source control product.
The BK license (at least regarding that provision) is not enforceable and has all the weight of feather to back it up.
Re:I don't see (Score:2)
The logic goes, you wouldn't have a license at all if I didn't grant it to you somehow, so you can't complain about the terms. All you can do is reject the license and not use the product. I can require you to wear a heatsink on your forehead if I want to.
Re:I don't see (Score:3, Informative)
Re:I don't see (Score:2)
Which is the one used for Kernel development, if I'm not mistaken...
Re:I don't see (Score:2)
It's irrelevant what license other kernel developers are using. If you want to contribute to a BK competitor and the kernel you need to either pay for BK, not use BK, or ask Larry nicely for an exception (which he has said he's willing to consider in individual cases). I can't see anything wrong with that policy.
Re:I don't see (Score:3, Informative)
(d) Notwithstanding any other terms in this License, this License is not available to You if You and/or your employer develop, produce, sell, and/or resell a product which contains substantially similar capabil- ities of the BitKeeper Software, or, in the reason-
Re:I don't see (Score:2)
Re:I don't see (Score:5, Informative)
I've used many peices of software that have gotten "the job done better."
And, I've been burned too many times to count when the company that makes the software changes focus or goes out of business.
Free Software, for me, is great insulation from forced migrations, "upgrades" and unsupported software.
Lesson to be learned (Score:5, Insightful)
Open source and propriety software can and should be used hand in hand. The best tool for the job etc. etc. The OSS scene suffers from the idea they are members of some religion and by using anything other then Open Source they are committing a crime against the movement.
Re:Lesson to be learned (Score:2)
While I agree this is the case, OSS is often seen as 'freeware' by most people. This in itself is dammaging far beyond the rants of a few OSS advocates.
(For the record: I'm using Linux 2.6.5 with NVidia's video drivers, have paid for Transgaming's WineX, Crossover Plugin and Office, VMWare, numerous native and ported Linux programs,. At t
Re:Lesson to be learned (Score:2)
Which believes proprietary software is immoral pure and simple.
It seems OSS falls into two groups: pragmatic and idealogical.
And as time moves along the differences between the two grow larger.
Re:Lesson to be learned (Score:4, Insightful)
Larry has also been known to change license terms specifically to force a particular user to upgrade to a more expensive license -- I was an employee at a Linux startup (MontaVista Software) when it happened to us. He's been known to spread FUD about Arch in public, and is otherwise not a very nice person to have as a competitor *or* a supplier.
Particularly given that Free alternatives [gnuarch.org] to BitKeeper with history-sensitive merging and distributed repository support (the two features that make BitKeeper so powerful) are available, using BitKeeper is arguably much more destructive than it is useful.
Re:Lesson to be learned (Score:2, Informative)
Re:Lesson to be learned (Score:3, Interesting)
That would be an extreme view. Most just realize that there is a significant risk in using proprietary infrastructure. Imagine BK had no bridge to CVS. BK starts charging a lot of money to use BK (monthy fee even). Great, so the kernel hackers check out the code and put it in CVS - no big deal. Next SCO comes along and makes claims about the h
numbers... (Score:2)
No, it's that *everyone* was just 10x more productive after everyone stopped arguing about the whole matter.
just kidding. If BK really helps the kernel dev's, all power to them. I havn't looked at the BK website in a year or so, but one thing I think i didn't like was having to connect to the internet every couple of days if using the unregistered version. while I understand the concept, it's just a bit
Other products in the line (Score:5, Funny)
*BitCreeper debugging tool
*BitSleeper archiving tool
*BitDeeper anti-anti-enhancement spam tool
*BitPeeper anti-anti-porn tool
Re:Other products in the line (Score:2, Funny)
Re:Other products in the line (Score:2)
Re:Other products in the line (Score:2)
BitCheeper - Coupon managment
BitLeeper - Compression and organization
BitSteeper - For perfect digital Earl Gray
arch? (Score:4, Interesting)
Re:arch? (Score:5, Informative)
The fact that it's actually used outside of one project/domain (unlike BitKeeper) also helps as there's a wider pool of experience to tap into.
Having said that, while it's maturing fast it still has an evil UI (no Tom wrappers are NOT an acceptable solution for that), and lacks some important features like being able to turn a changeset into a flat text file and then email it in one command. If you're willing to do some scripting arch is the most powerful SCM I've ever seen, but it could always be better.
Finally it's a bit misleading to say that it was BitKeeper that made Linus 10x more productive. Before BK they didn't use any source control at all, and all patches were sent either in private email or onto lkml. It's not surprising that using source control improved things!
For comparison, Alexandre Julliard who maintains Wine processes approximately 100 checkins a week, so that's about 14 a day. We use CVS with a single committer. Given that Alexandre actually codes a lot as well, I think it's pretty clear that Linus' "productivity boost" more to do with being able to work full time and having a decent project structure (we all send patches to a dedicated mailing list for instance and we don't have a ton of "lietenant" trees) than anything magical about BitKeeper.
Its sounds like the right decision (Score:4, Interesting)
New unit of measurement? (Score:2, Insightful)
Re:New unit of measurement? (Score:4, Funny)
50 patches a day - that is amazing.
support monotone (Score:5, Interesting)
Maybe not so great? (Score:3, Insightful)
Perhaps having the repository where Linux and other projects are hosted being broken to older clients now and then is a bad thing for a community (though the bk people obviously see it as positive for them - free testing). I understand they're providing everything for free, but perhaps Linux might be better off on a community-supported service (still running Bitkeeper) that is concerned a bit more production status?
I'm not intimately familiar with this, so it's just my two cents, feel free to argue.
10x more productive my ass. (Score:2)
Emphasis on 2x, NOT 10x (Score:5, Insightful)
S
Distributed revision control is Good Stuff(tm) (Score:3, Interesting)
"BitKeeper makes Linus 10x more productive" might be generalizable to "distributed revision control makes Linus 10x more productive" -- pity we don't have more sample data yet.
Since when did Linus... (Score:5, Insightful)
Unlike a lot of you, Linus isn't a Linux zealot. He's said on more than one occasion that Linux/OSS is about making the right tool for the job when one doesn't already exist. It has nothing to do with shoving an ideology down everyone's throat.
In this case, Linus decided that Bitkeeper was the best tool for the job, and it is very telling that people are judging him for not complying with an almost religious ideology that he doesn't even subscribe to.
And for the rest of us.. (Score:2, Insightful)
The article makes some moot points comparing BitKeeper to CVS - since I'm fairly sure anybody who's tried SVN would never want to go back to CVS. I now recoil in disgust whenever I have to access a CVS database - SVN's implementation solves problems in a much cleaner way than CVS and has far fewer rough edges.
10X More? Must be in Metric. (Score:2)
Yes 2.5x better than nothing (Score:5, Insightful)
But anything not using a SCM will be helped by using one.
Subversion Anyone? (Score:3, Interesting)
Re:Subversion Anyone? (Score:3, Informative)
Testing Expertise (Score:5, Insightful)
"When we are testing out a new release we can put it on bkbits.net and we know in seconds if we have broken something important; people use old versions of BK to talk to bkbits.net every few seconds."
I'm sure they're experts in code management, but their testing procedures could use some work.
Here's the rate of change for 2.6 (Score:5, Informative)
The Linux 2.6.0 kernel was released after 680 days of development. Here are some statistics about the development cycle during that time period:
- 27149 different changes were accepted into the kernel source tree. That averages out to about 1.66 changes per hour over the entire 680 days.
- 916 different developers contributed at least one kernel patch.
- 413 different developers contributed one kernel change.
- 117 different developers contributed two kernel changes.
- 57 different developers contributed three kernel changes.
- 38 different developers contributed four kernel changes.
- 20 different developers contributed five kernel changes.
- The top 10 developers contributed 10933 kernel changes.
- The top 5 developers contributed 6956 kernel changes, averaging out to about 10 kernel changes a day.
- There were 6175 merges in the kernel source tree, averaging out to about 9 merges a day.
- Including merges and code changes, there were just over 2 modifications per hour over the entire 680 days of development.
Re:sadly, your numbers are bogus (Score:3, Informative)
Some notible exceptions are Andrew Morton and Rusty's kernel patch monkey. So for people who sent in patches through them, yes you are correct. But the original patch author can easily be determined by looking at the changelogs for those submitted patches. It also would not be that hard for someone to go through and properly fish out the "
Linus - Practical (Score:5, Insightful)
Idealism is nice and all but it doesn't get shit done.
Re:Linus - Practical (Score:3, Insightful)
And for another example of idealism providing great tools via a slightly different ideology, see OpenBSD. Take a look at what they've done with PF and CARP. Neither development would've seen the light of day if it hadn't been for the OpenBSD group's free (BSD) software ideology.
Yes, BK Makes an Enormous Difference (Score:4, Interesting)
BK has beautiful diff and merge tools. It has incredible file history tools. But most importantly, it's best at doing it's job: accurate revision control while staying near completely out of your face. That's why we used it at SOMA [somanetworks.com], and that's why I really wish we used it at Alias [alias.com]. Of course, all this really just scratches the surface.
Try it. Check in code. Share it with others. Propogate changes between people. Imagine sharing a development branch served off your desktop without doing any setup other than typing "bkd". Imaging 10 people pushing and pulling code between themselves and the server. Now you understand BK. It's not that source is stored or even the toolset alone. It's the fact that umpteen developers can push and pull between themselves and/or the server and accurately propogate changes all around. Combine that with the tools Larry and crew have written, and now you'll understand why it's better.
And to be fair, I work in the field and I've used SourceSafe, CVS/RCS, BitKeeper, Perforce, ClearCase, arch, Subversion, Accurev, and others. BK is easily the best of them... by far!
--ck
Re:Yes, BK Makes an Enormous Difference (Score:5, Funny)
Ok, ok, we get the message, Larry. You dont need to astroturf so vehemently. Or at least be more restrained, say, mention only 2 competitors at once in any of these completely spontaneous user testimonials, no?
Where do the free competitors stand now? (Score:4, Interesting)
What went wrong? (Score:4, Insightful)
There are many FOSS alternatives to Bitkeeper such as CVS, Subversion, and arch. And none of them come close to the productivity of this one commercial package.
Why is this? Sure, we've got peer review, no deadline/bottom-line pressure, but we still get outdone. Where is Eric Raymond's bazaar now?
Don't get me wrong, I'm a strong believer in OSS, and occasionally contribute, but there are still areas where we are sorely lacking.
When was the last time you saw a decent FOSS fps game? Crystal Space looks promising, but it's just an engine. Look at Tux Racer, another example of FOSS failure. The game was forked when the original developer decided to go closed source, and the GPL'd OpenRacer project was started. Today the closed-source TuxRacer is a rather beautiful full-featured game, and the FOSS version hasn't progressed beyond a novelty.
Then we get to see Blender, a shining example of when FOSS developers adopt a formerly closed-source project and do it right.
Re:10x... riiiight... (Score:2)
Re:10x... riiiight... (Score:2)
Re:10x... riiiight... (Score:2)
Re:10x... riiiight... (Score:5, Insightful)
But what's their measurement? The number of patches from them he accepts. For years, Linux development was badly hamstrung by the fact that Linus couldn't work fast enough. The patch submission process, was, in essence, emailing him over and over and over, hammering away at the poor guy, trying to get your patch noticed. The developer frustration with this process was EXTREME. The single most common thing I heard about kernel development was "Linus doesn't scale". BK has changed that completely.
It seems entirely possible to me that Linus is now 10x better at processing and merging patches. But that's not all he does.... a 10x improvement in patch management could easily translate to a 2x overall productivity increase. Measurements of code changes show about a 2.5x overall improvement, which is pretty close to Linus' own guess.
In other words, these numbers aren't incompatible... productivity is a hard thing to measure, and there are a lot of angles from which you can look at it.
If the claim of 50 patches a day, 365 days a year are true... that's 18,250 patches a year. The fact that he can do that and get coding done TOO should be an object of reverence and awe.
Since BK was designed with Linus in mind, it probably won't affect other programmers as dramatically as it did him. Not all coders will think like he does, and his distributed coding needs are very specialized. It's not going to be applicable to all environments, but it's pretty obvious that at least in some cases, it is an enormous win and completely worth what they're charging for it.
Re:10x... riiiight... (Score:4, Interesting)
The other, very convincing, argument is that all of the previous 'functionality' is there, and then some. Linus still creates releases in the same way--you can just get stuff earlier with BK. The release notes are better, because they're generated from BK, and include the author's name and comments, not just Linus's summary. You can still send diff-style patches via email. Bitmover also added CVS gateways for those who want early changes without using BK. The LKML community was extremely skeptical to say the least, but pretty much everyone except the rabid zealots are convinced.