Why use BitKeeper when there are lots of great alternatives?

For many projects, the answer is: you shouldn’t. For instance, Git is an excellent solution for many use-cases. But it’s not ideal for every situation. Here are some instances where BitKeeper will likely be a better solution.

Very large projects

Although we’re well-known for hosting the Linux kernel ten years ago, BitKeeper was actually built with commercial development projects in mind. Now you can get a commercially hardened SCM in an Open Source version.

Our design offers several unique advantages for large development efforts.

Performance & Scalability

  • BK/Nested allows large monolithic repositories to be easily broken up into any number of sub-repositories. Changesets, libraries, and configuration files automatically stay in sync with the full code base. Essentially, Sub-Modules that actually work!

  • BitKeeper’s raw speed for large projects is simply much faster than competing solutions for most common commercial configurations and operations… especially ones that include remote teams, large binary assets, and NFS file systems.

Security

  • The ability to seamlessly share only a subset of your source tree allows for a great way to work with internal and external teams without imposing administrative burdens on your development team.

  • BitKeeper’s obsessive collection of data allows for in-depth analytics and auditing. See who made every change in the source base, when, from what computer, and what comments they attached.

Safety

  • Total reproducibility prevents broken builds or indeterminate states.

  • Not every developer on a large team can be an expert in your version control system. With BitKeeper, they don’t have to be. Commands are logical, powerful, scriptable, and follow common Unix/Linux syntax. Safeguards ensure that neophytes can’t accidentally throw the repository into chaos, lose their work, or cause broken builds.

  • Every filesystem access of revision controlled data includes a checksum to ensure data integrity. All data is written with a redundant encoding to allow common filesystem and hardware failures to be detected and corrected. A flipped bit of memory won’t corrupt your data.

Teams that measure developer time

Spending a lot of time dealing with manual and bad auto-merges? BitKeeper merges better than most other tools, and you will quickly develop confidence in the quality of the merges, meaning no more reviewing auto-merged code.

BitKeeper is easier to use than most other systems and doesn’t require developers to become experts to work efficiently or safely. Unlike other workarounds that try to limit complexity and impose safety measures, BitKeeper still provides every developer with a full set of tools and commands…​ not just a dumbed-down subset.

Customers report dramatic time savings dealing with:

  • Manual and bad auto-merges

  • On-boarding new developers

  • Wasting time on old development paths (due to increased use of source history and commit comments)

  • Administering the system

  • Support

Organizations with multiple product lines

BitKeeper makes massive code reuse across multiple code bases practical.

Product lines allow teams to share components across multiple products. Each product can track all the components and integrate their changes back into the mainstream. You can even detach the component and use it as a traditional repository!

This means a team can be given a standalone component and work on it independently of the products that use that component without creating any complexity or merge problems.

Teams with lots of binary assets

Traditionally, distributed version control systems haven’t dealt well with large binary files. They tend to either hog storage and network resources or put remote developers at a disadvantage by centralizing binary files.

BitKeeper’s Binary Asset Manager (BAM) preserves resources and keeps access fast by providing local storage as needed.

BAM is great for any organization that handles:

  • Videos

  • Photos

  • Artwork

  • Office files

  • CAD files

  • Any large binary files