Recently released BitKeeper 7.3ce includes a new feature aimed to quickly import Git repositories, the possibility of deleting tags, and several changes to existing features.
Importing from Git is still to be considered a work in progress, says BitKeeper developer Wayne Scott, due to a few limitations. In particular, git repositories that include submodules cannot be imported, the -M
option command in git fast-export
, used for move detection, is not supported, nor are octopus merges, i.e., merges having more that two parents.
A new bk untag
command in BitKeeper 7.3ce allows developers to delete tags, which was not possible previously. Tags are versioned in BitKeeper, meaning their change history is stored in the repo, including whether a tag has been moved, i.e., assigned to a different changeset, or deleted. Related to this, bk changes -t
has been modified so it shows only the currently tagged changeset. Alternatively, you can use bk changes -tt
to show all tagged changeset, including when the tag has been moved or deleted.
Additionally, BitKeeper 7.3 no longer bundles a number of OSS programs such as GNU diff
and patch
, and libraries such as zlib, pcre, lz4 and others. Binaries for all of them are expected to be found on the system where it runs. An exception is allowed for diff
on Windows: BitKeeper embeds a GNU diff 2.8.7 binary to be used in case no system GNU diff is found.
BitKeeper 7.3 also includes several bug fixes and performance improvements, such as a faster bk fast-export
, which is now a couple orders of magnitude faster for large repositories, and correct behavior of pull
with parallel deletes of symlinks.
BitKeeper 7.3ce is the second open-source release of BitKeeper, following the initial open-sourcing of version 7.2ce in May 2016 under the Apache License version 2. Its source code is mirrored on GitHub while BitKeeper itself is used for actual development.
BitKeeper was the official versioning control tool for Linux from 2002 to 2005, when BitKeeper’s maker stopped providing it free of charge to the community. This led to the decision of launching the Git project to become the Linux kernel’s source code management tool.