|
|
Subscribe / Log in / New account

BitKeeper goes open source

By Nathan Willis
May 11, 2016

Many in the Linux community will remember BitKeeper as the proprietary version-control system (VCS) that, however inadvertently, inspired Linus Torvalds to create Git. That bit of history received a notable update on May 9, however, when BitKeeper went from being a proprietary tool to being open-source software. The system is now available under the Apache 2 license, and the free-software community has begun taking a close look at what it contains.

In the late 1990s and early 2000s, the size of the kernel and the pace of development were threatening to overwhelm Torvalds—who, up to that time, had not found a VCS that he felt was adequate to the job of handling the kernel-development process. Then BitKeeper came along. Its creator, Larry McVoy, designed it, at least in part, with the hope that it would meet Torvalds's needs. Although there had been earlier distributed VCSes before (notably Sun's TeamWare), BitKeeper was one of the first to see any sort of widespread adoption.

In part, that adoption was due to the fact that the company (BitMover) offered free licenses to open-source projects. But the BitKeeper program itself remained proprietary—thus, naturally, using it for an open-source project was controversial to many in the free-software community. Yet there was still more to the arrangement than a vanilla free-to-use license, and those additional bits may have been BitKeeper's eventual undoing. First, even when BitKeeper was used to manage open-source software, the tool sent commit messages, diffs, and other metadata to a central log on BitMover's servers. And the BitKeeper license offered to free-software developers prohibited users from making contributions to any other VCS software, whether free or proprietary.

The kernel developers adopted BitKeeper in 2002 and quickly found its workflow a significant improvement. But not everyone interested in kernel development was willing to use the proprietary client. In early 2005, Andrew Tridgell reverse-engineered the BitKeeper wire protocol in an attempt to write a compatible client for himself (although the process involved in that reverse engineering was an almost comically straightforward one). There had been plenty of other tangles between BitMover and the community in the past, but that incident was, apparently, the last straw. In reply, BitMover rescinded the offers of a free BitKeeper license for the kernel developers and for free-software projects in general.

That turn of events infuriated many—especially in the kernel community. Torvalds publicly lashed out at Tridgell after the incident, blaming him for the loss of such a useful tool. But, rather than switch to a competing VCS, Torvalds decided he would write his own: the system that became Git.

Looking back on it 11 years later, the incident surely seems like a blessing in disguise. Git has become the dominant VCS in the software-development world, and is in use both for public projects and behind closed doors. And that was not even the only outcome; BitMover's move also prompted Matt Mackall to write the Mercurial DVCS.

In the interim, BitMover has continued to sell its proprietary services to clients. So it came as a bit of a surprise to many when the license change was made. One of the first online outlets to pick up the story was Hacker News, where McVoy has participated in the resulting discussion thread, commenting on BitKeeper's history as well as the specifics of the source-code release.

Whether or not the source-code release comes too late to be meaningful for the community was a recurring question. In one comment, McVoy explained the rationale for the release:

The path to giving away our stuff seemed like:
step 1: give it away
step 2: ???
step 3: profit!

And still does. So what changed? Git/Github has all the market share. Trying to compete with that just proved to be too hard. So rather than wait until we were about to turn out the lights, we decided to open source it while we still had money in the bank and see what happens. We've got about 2 years of money and we're trying to build up some additional stuff that we can charge for. We're also open to being doing work for pay to add whatever it is that some company wants to BK, that's more or less what we've been doing for the last 18 years.

Will it work? No idea. We have a couple of years to find out. If nothing pans out, open sourcing it seemed like a better answer than selling it off.

Further down, though, McVoy added that the BitKeeper open source release will "show the world that SCM [source code management] doesn't have to be as error prone or as complicated as Git. You need to understand how Git works to use it properly; BK is more like a car, you just get in and drive."

Indeed, Git's complexity is a common criticism (in the Hacker News thread and many other places). And commenters in various discussion threads have pointed out that BitKeeper has its share of well-regarded features, such as its Binary Asset Manager (BAM), the ability to track files across renames, and an arguably simpler way to work with submodules. McVoy encouraged developers to take a look.

Interestingly enough, he also commented that the Apache license was chosen because "all the lawyers at all the big companies liked that one". But, he added, the BitKeeper team does not particularly care: "if everyone yells that it should have been GPL we'll fork it and relicense it under the GPL." As one commenter noted, however, the Apache license does leave BitMover with the option of taking some future version of the code, improved by the community, proprietary again.

It is surely too early to predict whether BitKeeper will develop new life as an open-source software project. Commenters in the Hacker News thread offered plenty of suggestions to McVoy (such as a BitKeeper-based GitHub replacement), although others were quick to insist that the release is far too late to make any difference.

At the very least, it will take some time for outside developers to scour the BitKeeper source code and formulate opinions on what is worth investing in and what is not. Already, developers are scrutinizing the code for security issues, and some seem to find it lacking the security awareness necessary for enterprise-level adoption.

But winning over contributors in large numbers may be difficult due to BitMover's history of cutting off licenses for developers that ran afoul of McVoy's good graces. Tridgell was not the only developer to incur McVoy's wrath; there is at least one example of McVoy frightening off a Mercurial developer by calling his employer. Perhaps that was not the intent of the call, but such chilling effects led many to call BitKeeper's earlier offer of free access for open-source projects the "Don't Piss Off Larry" license.

Such conflicts are unfortunate; more so given that, before the acrimonious break with the kernel community, McVoy was perceived to be a big supporter of open-source-software projects. Now that BitKeeper is an open-source project itself, perhaps it will find a way to have a less contentious relationship with the larger community.


to post comments

BitKeeper goes open source

Posted May 12, 2016 16:55 UTC (Thu) by jnareb (subscriber, #46500) [Link] (2 responses)

> That turn of events infuriated many—especially in the kernel community. Torvalds publicly lashed out at Tridgell after the incident, blaming him for the loss of such a useful tool. But, rather than switch to a competing VCS, Torvalds decided he would write his own: the system that became Git.

Actually, from what I remember (from reading then KernelTrap, KernelTraffic, and one issue of GitTraffic), Linus Torvals did survey of existing open-source distributed VCS, but didn't found any to taste (and within quite strict performance requirements: Monotone came closest, and some of its features got incorporated in Git, but at the time of survey it was hit by a performance regression).

See also https://git.wiki.kernel.org/index.php/GitHistory

> Looking back on it 11 years later, the incident surely seems like a blessing in disguise. Git has become the dominant VCS in the software-development world, and is in use both for public projects and behind closed doors. And that was not even the only outcome; BitMover's move also prompted Matt Mackall to write the Mercurial DVCS.

Well, Git and Mercurial were developed at the same time, in parallel, and announced close together (IIRC).

> Further down, though, McVoy added that the BitKeeper open source release will "show the world that SCM [source code management] doesn't have to be as error prone or as complicated as Git. You need to understand how Git works to use it properly; BK is more like a car, you just get in and drive."

Well, BitKeeper would have to compete not only against Git (GPLv2) and GitHub with its network effect, but also against other OSS DVCS: Mercurial (GPLv2+), Fossil (2-clause BSD), Veracity (Apache v2), perhaps even Bazaar (GPLv2+) or Monotone (GPL).

BitKeeper goes open source

Posted May 13, 2016 6:05 UTC (Fri) by edomaur (subscriber, #14520) [Link]

... and Darcs, Aegis, Veracity, etc.

Also, tools like git annex will also be missing from the BK toolset.

BitKeeper goes open source

Posted May 20, 2016 20:05 UTC (Fri) by mathstuf (subscriber, #69389) [Link]

> Monotone came closest, and some of its features got incorporated in Git, but at the time of survey it was hit by a performance regression).

It wasn't just at the time of the survey. Cloning pidgin in 2010 or so took *hours*. And that was with the latest "bundle" download to avoid downloading the whole thing.

Support fast-export / fast-import

Posted May 12, 2016 16:57 UTC (Thu) by jnareb (subscriber, #46500) [Link]

I wonder if BitKeeper has support for fast-export / fast-import stream for importing from other DVCS (one one hand), and avoiding vendor lock (on the other hand). The fast-import format (which came from Git) has become standard "language" for DVCS interoperability.

BitKeeper goes open source

Posted May 13, 2016 20:21 UTC (Fri) by robbe (guest, #16131) [Link]

> BK is more like a car, you just get in and drive.
Maybe Larry is an exception, or too old ... I still vividly remember the time it took me to get the hang of driving a car, and the number of times the motor died in protest.

Looks like the old "Windows is easy" meme.


Copyright © 2016, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds