BitKeeper
Encyclopedia
BitKeeper is a software tool for distributed revision control
Distributed revision control
A distributed revision control system , distributed version control or decentralized version control keeps track of software revisions and allows many developers to work on a given project without necessarily being connected to a common network.-Distributed vs...

 (configuration management
Configuration management
Configuration management is a field of management that focuses on establishing and maintaining consistency of a system or product's performance and its functional and physical attributes with its requirements, design, and operational information throughout its life.For information assurance, CM...

, SCM
Software configuration management
In software engineering, software configuration management is the task of tracking and controlling changes in the software. Configuration management practices include revision control and the establishment of baselines....

, etc.) of computer source code
Source code
In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...

. A distributed system, BitKeeper competes largely against other systems such as Git
Git (software)
Git is a distributed revision control system with an emphasis on speed. Git was initially designed and developed by Linus Torvalds for Linux kernel development. Every Git working directory is a full-fledged repository with complete history and full revision tracking capabilities, not dependent on...

 and Mercurial
Mercurial (software)
Mercurial is a cross-platform, distributed revision control tool for software developers. It is mainly implemented using the Python programming language, but includes a binary diff implementation written in C. It is supported on Windows and Unix-like systems, such as FreeBSD, Mac OS X and Linux...

. BitKeeper is produced by BitMover Inc., a privately held company based in Campbell, California
Campbell, California
Campbell is a city in Santa Clara County, California, a suburb of San Jose, and part of Silicon Valley, in the San Francisco Bay Area. As of the 2010 U.S. Census, Campbell's population is 39,349...

 and owned by CEO Larry McVoy
Larry McVoy
Larry McVoy is the CEO of BitMover, the company that makes BitKeeper, a version control system that was used from February 2002 to early 2005 to manage the source code of the Linux kernel....

, who had previously designed TeamWare
TeamWare
Sun WorkShop TeamWare is a distributed source code revision control system made by Sun Microsystems...

.

BitKeeper builds upon many of the TeamWare concepts. Its key selling point is the fact that it is a distributed version control tool, as opposed to CVS
Concurrent Versions System
The Concurrent Versions System , also known as the Concurrent Versioning System, is a client-server free software revision control system in the field of software development. Version control system software keeps track of all work and all changes in a set of files, and allows several developers ...

 or SVN. One of the defining characteristics of any distributed version control tool is the ease with which distributed development teams can keep their own local source repositories and still work with the central repository. Its web site claims that "BitKeeper has been shown to double the pace of software development".

BitKeeper uses history files that are based on the idea of the delta tables and interleaved deltas from SCCS
Source Code Control System
Source Code Control System is an early revision control system, geared toward program source code and other text files. It was originally developed in SNOBOL at Bell Labs in 1972 by Marc J. Rochkind for an IBM System/370 computer running OS/360 MVT...

 but the BitKeeper history files are made intentionally incompatible by using a different magic number at the beginning.

BitKeeper is proprietary software
Proprietary software
Proprietary software is computer software licensed under exclusive legal right of the copyright holder. The licensee is given the right to use the software under certain conditions, while restricted from other uses, such as modification, further distribution, or reverse engineering.Complementary...

 and is normally sold or leased (as part of a support package) to medium or large corporations.

History

Bitkeeper was first mentioned as a solution to some of the growing pains that Linux was having in September of 1998.. Early access betas were available in May of 1999 and on May 4 2000 the first public release of BitKeeper was made available.
BitMover used to provide access to the system for certain open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

 or free software
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...

 projects, the most famous (and controversial) of which was the source code of the Linux kernel
Linux kernel
The Linux kernel is an operating system kernel used by the Linux family of Unix-like operating systems. It is one of the most prominent examples of free and open source software....

. The license for the "community" version of BitKeeper had allowed for developers to use the tool at no cost for open source or free software projects, provided those developers did not participate in the development of a competing tool (such as CVS
Concurrent Versions System
The Concurrent Versions System , also known as the Concurrent Versioning System, is a client-server free software revision control system in the field of software development. Version control system software keeps track of all work and all changes in a set of files, and allows several developers ...

, GNU Arch
GNU arch
In computing, GNU arch is a distributed revision control system that is part of the GNU Project and licensed under the GNU General Public License...

, Subversion or ClearCase) for the duration of their usage of BitKeeper plus one year. This restriction applied regardless of whether the competing tool is open/free or proprietary. This version of BitKeeper also required that certain meta-information about changes be stored on computer servers operated by BitMover (www.openlogging.org), an addition that makes it impossible for community version users to run projects of which BitMover is unaware.

License concerns

The decision made in 2002 to use BitKeeper for Linux kernel development was a controversial one. Some, notably GNU Project
GNU Project
The GNU Project is a free software, mass collaboration project, announced on September 27, 1983, by Richard Stallman at MIT. It initiated GNU operating system development in January, 1984...

 founder Richard Stallman
Richard Stallman
Richard Matthew Stallman , often shortened to rms,"'Richard Stallman' is just my mundane name; you can call me 'rms'"|last= Stallman|first= Richard|date= N.D.|work=Richard Stallman's homepage...

, expressed concern about proprietary tools being used on a flagship free project. While project leader Linus Torvalds
Linus Torvalds
Linus Benedict Torvalds is a Finnish software engineer and hacker, best known for having initiated the development of the open source Linux kernel. He later became the chief architect of the Linux kernel, and now acts as the project's coordinator...

 and other core developers adopted BitKeeper, several key developers (including Linux veteran Alan Cox
Alan Cox
Alan Cox is a British computer programmer who formerly maintained the 2.2 branch of the Linux kernel and continues to be heavily involved in the development of the Linux kernel, an association that dates back to 1991...

) refused to do so, citing the Bitmover license, and voicing concern that the project was ceding some control to a proprietary developer. To mitigate these concerns, BitMover added gateways which allowed limited interoperation between the Linux BitKeeper servers (maintained by Bitmover) and developers using CVS and Subversion. Even after this addition, flamewars
Flaming
Flaming, also known as bashing, is hostile and insulting interaction between Internet users. Flaming usually occurs in the social context of an Internet forum, Internet Relay Chat , Usenet, by e-mail, game servers such as Xbox Live or Playstation Network, and on video-sharing websites...

 occasionally broke out on the Linux kernel mailing list
Linux kernel mailing list
The Linux kernel mailing list is the main electronic mailing list for Linux kernel development, where the majority of the announcements, discussions, debates, and flame wars over the kernel take place. Many other mailing lists exist to discuss the different subsystems and ports of the Linux...

, often involving key kernel developers and BitMover CEO Larry McVoy
Larry McVoy
Larry McVoy is the CEO of BitMover, the company that makes BitKeeper, a version control system that was used from February 2002 to early 2005 to manage the source code of the Linux kernel....

, who is also a Linux developer.

Pricing change

In April 2005, BitMover announced that it would stop providing a version of BitKeeper free of charge to the community, giving as the reason the efforts of Andrew "Tridge" Tridgell
Andrew Tridgell
Andrew "Tridge" Tridgell is an Australian computer programmer best known as the author of and contributor to the Samba file server, and co-inventor of the rsync algorithm....

, a developer employed by OSDL
OSDL
Open Source Development Labs was a non-profit organization supported by a global consortium tasked to "accelerate the deployment of Linux for enterprise computing." Founded in 2000, its goals included "to be the recognized center-of-gravity for the Linux industry."On January 22, 2007, OSDL and the...

 on an unrelated project, to develop a client which would show the metadata (data about revisions, possibly including differences between versions) instead of only the most recent version. Being able to see metadata and compare past versions is one of the core features of all version-control systems but was not available to anyone without a commercial BitKeeper license, significantly inconveniencing most Linux kernel developers. Although BitMover decided to provide free commercial BitKeeper licenses to some kernel developers, it refused to give or sell licenses to anyone employed by OSDL, including Linus Torvalds
Linus Torvalds
Linus Benedict Torvalds is a Finnish software engineer and hacker, best known for having initiated the development of the open source Linux kernel. He later became the chief architect of the Linux kernel, and now acts as the project's coordinator...

 and Andrew Morton
Andrew Morton (computer programmer)
Andrew Keith Paul Morton is an Australian software engineer, best known as one of the lead developers of the Linux kernel...

, placing OSDL developers in the same position other kernel developers were in. The Git
Git (software)
Git is a distributed revision control system with an emphasis on speed. Git was initially designed and developed by Linus Torvalds for Linux kernel development. Every Git working directory is a full-fledged repository with complete history and full revision tracking capabilities, not dependent on...

 project was launched with the intent of becoming the Linux kernel's source code management software, and was eventually adopted by Linux developers.

End of support for the "Free Use" version was officially July 1, 2005 and users were required to switch to the commercial version or change version control system by then. Commercial users are also required not to produce any competing tools: in October 2005, McVoy contacted a customer using commercially licensed BitKeeper demanding that an employee of the customer stop contributing to the Mercurial
Mercurial (software)
Mercurial is a cross-platform, distributed revision control tool for software developers. It is mainly implemented using the Python programming language, but includes a binary diff implementation written in C. It is supported on Windows and Unix-like systems, such as FreeBSD, Mac OS X and Linux...

 project, a GPL source management tool. Bryan O'Sullivan, the employee, responded, "To avoid any possible perception of conflict, I have volunteered to Larry that as long as I continue to use the commercial version of BitKeeper, I will not contribute to the development of Mercurial."

External links

  • BitKeeper's note about the Nov 2003 security breach
  • "Not quite Open Source" Article on Linux Weekly News, circa 1999, discussing features, licensing, Larry McVoy, and OSI.
  • "No More Free BitKeeper" Discusses BitMover's decision to phase out the free version of BitKeeper
  • "BitKeeper and Linux: The end of the road?" discusses the BitKeeper fiasco from three viewpoints: Linus Torvalds
    Linus Torvalds
    Linus Benedict Torvalds is a Finnish software engineer and hacker, best known for having initiated the development of the open source Linux kernel. He later became the chief architect of the Linux kernel, and now acts as the project's coordinator...

    , Larry McVoy
    Larry McVoy
    Larry McVoy is the CEO of BitMover, the company that makes BitKeeper, a version control system that was used from February 2002 to early 2005 to manage the source code of the Linux kernel....

    , Andrew "Tridge" Tridgell
    Andrew Tridgell
    Andrew "Tridge" Tridgell is an Australian computer programmer best known as the author of and contributor to the Samba file server, and co-inventor of the rsync algorithm....

     (the alleged reverse-engineer who offers a short explanation of the situation)
  • How Tridge reverse-engineered Bitkeeper and Torvalds knifes Tridgell, two articles describing Tridgell's 2005 linux.conf.au keynote and comparing what he did to statements by Torvalds and McVoy
  • SourcePuller is the result of Tridgell's efforts
  • RMS: BitKeeper bon-voyage is a happy ending Richard Stallman
    Richard Stallman
    Richard Matthew Stallman , often shortened to rms,"'Richard Stallman' is just my mundane name; you can call me 'rms'"|last= Stallman|first= Richard|date= N.D.|work=Richard Stallman's homepage...

    on the Linux/BitKeeper fallout (formerly on NewsForge, currently on Linux.com)
  • The Age Crunch time for Linus
  • BitKeeper at the "Better SCM" Site - a collection of articles and essays about BitKeeper and its history.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK