BitKeeper goes open source
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:
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.
Posted May 12, 2016 16:55 UTC (Thu)
by jnareb (subscriber, #46500)
[Link] (2 responses)
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).
Posted May 13, 2016 6:05 UTC (Fri)
by edomaur (subscriber, #14520)
[Link]
Also, tools like git annex will also be missing from the BK toolset.
Posted May 20, 2016 20:05 UTC (Fri)
by mathstuf (subscriber, #69389)
[Link]
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.
Posted May 12, 2016 16:57 UTC (Thu)
by jnareb (subscriber, #46500)
[Link]
Posted May 13, 2016 20:21 UTC (Fri)
by robbe (guest, #16131)
[Link]
Looks like the old "Windows is easy" meme.
BitKeeper goes open source
BitKeeper goes open source
BitKeeper goes open source
Support fast-export / fast-import
BitKeeper goes open source
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.