This release contains changes aimed at decoupling built-in packages from BitKeeper to make it easier to include to system packages. Since some functionality changed, but nothing major was added the minor version number was incremented.

Add ‘ bk untag ’ command to delete tags and extend ‘bk changes’ output to show better information about tags. BK has always version controlled tags and it is possible to have the same tag at multiple places in the history. This release adds the ability to delete tags (previously you could move them but there was no way to delete them). bk changes -t shows only the currently tagged changesets; bk changes -tt shows all changesets even if the tag is moved/deleted and annotates them with that information:

The ‘ bk fast-import ’ command was added to quickly import git repositories into bk. This is the initial release of a work in progress. The following features are not yet implemented

Removed the out-of-date version of GNU diff from our tree. The few places where BK assumed a GNU diff, it will now use the one on the system. There is an exception for Windows. If no diff is found BK will use a 2.8.7 binary that we still ship (upgraded from 2.7).

This is part of a larger effort to unbundle all of the OSS packages that are likely to already be installed (and more up-to-date).

Rename the old bk diffs command to ‘bk diff’. bk diffs remains as an alias. Scripts expecting on the “bk diff” to run a GNU diff should be updated to remove the "bk " prefix.

Removed the out-of-date version of GNU patch from our tree. The code will now use whatever version of patch the user has installed. The ‘bk patch’ code will also call the system’s patch(1) but will first scan the patch and runs ‘bk edit’ on all pathnames found in the patch. As a side-effect of this change we removed the bk import -temail . It was not used and was too dependent on the exact version of patch used.

The libraries zlib, pcre, lz4, tomcrypt & tommath will now link to the system’s copy instead of the using our included copies if a simplistic compile test works. The src/conf.mk.local fail can be tweaked if these libraries are found in non-standard locations on your system. When building from a tar.gz these libraries must be pre-installed.

Update the documentation to describe ‘bk get’ instead of ‘bk co’ and ‘bk delta’ instead of ‘bk ci’. The get/delta verbs have become the names for these operations and the documentation should reflect that. These commands were aliased before and after this release so no functionality has changed and no scripts should break.

When overriding a csets username with BK_USER, bk would record the new user and system’s username together as “user/realuser”. The code was changed to only display “user” in most cases. Visible changes: annotations will only be username not user/realuser

changes -uUSER will now match just the user name

limiting by user in bkweb works

findkey can now search for user in the user/realuser case

As part of the tag delete changes a number of dspecs were changed The $each() function was normalized to strictly walk each line (separated by newlines) of a dspec for processing. Previously :DSPEC: and $each(:DSPEC:) were separate and could do different things.

So the :C: macro was changed when not used in $each to return the comments with newlines. Previous it would join multiple lines without adding spaces which isn’t very useful.

The tag releated dspecs changed:

(these are lists separated by newlines) :TAGGED: all tags on delta that are still active :TAGS: all tags on delta and inactive ones are annotated if they are deleted or moved. :ALL_TAGS: Show all tags on delete active or not (old :TAG:)

Some aliases were added for compatibility:

:TAG: -> :TAGGED: :SYMBOL: -> :ALL_TAGS: