BitMover Releases Open Source BitKeeper Client
diegocgteleline.es writes "Larry McVoy, the owner of BitKeeper (also one of the guys behind LMbench) has posted a message to linux-kernel where he announces a open source client of BitKeeper, which would only allow synching against BK trees. It looks like it's licensed under the NWL (No Whining License) that will force you to 'not whine about this product or any other products from BitMover, Inc.'"
Don't be a stupid. At least read the mailing list posting:
Don't worry about the license, it's a joke. BSD license OK with everyone?
"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, February 2004
Linus did it. I can too! *jumps on the bandwagon*
This slashdot-related signature is a stub. You can help kihjin by expanding it.
Dude, read the Bazaar webpage. Just the front page. It's clearly not a fork. They want to have some level of interoperability, but that's about it. They wrote it in Python and have a totally different user interface.
Blockquoth the site:
US is now divided as the "Red" and "blue" states. Red States = communist countries. Coincidence? I think not
It is only a client restricted in features.
Linus made that choice two years ago, though, and both Arch and Subversion have probably improved since then (I can't talk about darcs, since I don't know that really).
That being said, it's not just about closed source, although that certainly is a factor, too (did you ever think about where those GNU tools you're (probably) using on a daily basis came from, and why they were created?); the problem with BK is not so much that it's closed-source, but that its "free" (as in beer) license does not permit you to work on any projects that could be seen as competing. That's a serious restriction of your own freedom, and it sure does overstep some ethical boundaries at least because it not only tells you what you can and cannot do with the software in question (BK), but also what you can and cannot do in the rest of your life. There is at least one kernel developer I can remember right now (Andrea Arcangeli) who got bitten by this - he already worked on Arch (I think - it may have been another system, too, though) in the past, so he simply could not use BK at all, and until now, he could not even directly access Linus' BK tree, instead having to rely on things like the bk2cvs gateway etc.
And what's also bad about the whole thing is that this is not the deal that was initially promised: initially, it was (basically) "you (the kernel developers) get to use our commercial product (BK) for free, and we get the opportunity to use the fact that you use it to advertise BK and show how it's able to efficiently handle even large projects". I can definitely understand why Andrea (and others) were upset, and while Linus had to take many things into account (and while it certainly is clear that BK did provide a substantial improvement over CVS), I think the criticism of BK is all but unjustified (and Larry's arrogant and condescending attitude which he showed in many, many lkml posts didn't exactly help, either).
quidquid latine dictum sit altum videtur.
Larry McVoy, BitMover Founder, gave a great talk about BitKeeper and the delta development model at SCALE 3x (Southern California Linux Expo) last month. Its available online here. -Ilan
With Bitkeeper it's very easy for every organization - and even every developer - to have his own "fork" of the tree which acts as a "master repository" for others to create branches off of.
For example, within RedHat, they can have one (or many) child branches from Linus's branch (or any other developer's branches); and "reparent" the branches as needed to merge in the various pieces they need. Other employes' repositories may point to one inside RedHat; or they may point to Linus's; and of course they can "reparent" their repository to switch between the two as needed.
Similarly, any company or group of developers can have similar structures.
Also; it's important to note that not everyone needs access to a "master repository"; and that indeed no-one needs access to a "master repository" except when they're merging with that master.
Bitkeeper works perfectly on my laptop in disconnected mode - and I have the full power of the source control system on my laptop even with no net access - I can create branches, merge branches, etc. If I'm traveling with someone else from the company I can merge my branches with his merely with a cable between the laptops - no connection to the home office is needed.
We used perforce at a previous company I was at with offices in China, Taiwan,Romania, and California and it was a horrible experience. Connecting to oversees repositories was painful; and merging changes between the oversees repositories sucked even worse.
Try BitKeeper. I'm sure you'll switch.
A copy of NWL can be found at http://lkml.org/lkml/2003/12/14/47/:
/*
* tarball.c copyright (c) 2003 BitMover, Inc.
*
* Licensed under the NWL - No Whining License.
*
* You may use this, modify this, redistribute this provided you agree:
* - not to whine about this product or any other products from BitMover, Inc.
* - that there is no warranty of any kind.
* - retain this copyright in full.
*/
It is just sad that it's written i Python. I like Python for scripting, but production software should not be written in dynamically typed scripting languages.
Yeah, we all know scripting languages suffer from buffer overflows and other serious flaws. So sgi, NATO and Viacom and gentoo did it all wrong:
http://www.zope.org/Resources/ZopePowered/
http://www.gentoo.org/proj/en/portage/index.xml
The fact that the use of Python is listed as one of the top features indicates that the programmers behind this project are either immature, untalented, or both.
For what reason?
BK isn't actually SCCS based, but it looks like SCCS to external programs which allows make, emacs, patch etc to work seamlessly. It certainly resembles SCCS in the way it manages deltas between versions however.
The Changeset idea is very nice and you can do a lot of cool stuff. eg if someone integrates a bugfix and your manager decides at the last minute that it shouldn't go in, you can generate an anti-changeset which reverses it. Then you can generate an anti-anti-changeset to reintegrate it. I'd like to see someone trying that on Perforce on a change with 100 files inside.
There IS a mature open source alternative to BitKeeper. http://aegis.sourceforge.net. I wish more people would try it.
There are lots of OSS/FS software configuration management (SCM) tools. CVS, Subversion (SVN), and GNU arch get lots of press, but there are many others such as Aegis, CVSNT, Darcs, FastCST, OpenCM, Vesta, Codeville, Bazaar and Bazaar-NG.
You might also take a peek at my paper Software Configuration Management (SCM) Security.
- David A. Wheeler (see my Secure Programming HOWTO)