BitKeeper is commercial implementation of version control system. However, users can use it for development of open source projects without any fee. Most well-know project, that had used BitKeeper was development of Linux kernel (but now it use Git for development).
Work with BitKeeper from Emacs is provided by bk package.
To install bk package you need to download it from http://www.emacswiki.org/elisp/bk.el,
or obtain sources from BitKeeper's repository at
source file you need to put to place, where Emacs can find it, and add loading of package
to the initialization file. You also have to install x-migrant package, that is required
for work of bk package.
Work with bk package is similar to work with VC. Functions could be executed either via
M-x and name of function, global and local key bindings, or via
BitKeeper menu, that
available when you work in bk-mode.
Package uses two prefix keys to work. The
C-x v prefix is used by VC package, so
functions from bk package overlap some of VC functions, that provides work with files.
C-c b prefix is global, and used for functions, that could be applied not only to
files. You need to remember, that only some functions available via global key bindings
C-x v or
C-c b prefixes). All other functions available only when you work
with files, registered in BitKeeper.
When you work with files, that registered in BitKeeper, in status line you can see
information about license: BKL, when you use standard commercial license, and BKCL, when
you use community license. To get more detailed information on licenses you can use
User can register new file in repository with
bk-register function, that bound to
C-x v i.
Work with already registered files is very similar to work with VC package. Obtaining
file from repository for editing, and releasing of it after editing is performed with
vc-toggle-read-only function (
C-x C-q). With
vc-revert-buffer function (
C-x v u) you can
revert changes in file, and start to work with version from repository.
You can see information about concrete file's revision with
C-x v l). To view revision history in a graphical form, you can execute
bk-revtool function (
C-c b r), and it runs graphical revisions browser, that come in
BitKeeper's distribution. User can also view concrete file's revision with
C-x v ~), or display annotated file with
bk-annotate function, that bound to
v g. To view files the
view-mode is used.
Work with changes in BitKeeper is based on concept of changesets. To support work with
changesets, the bk package defines several functions. To make changes and create new
bk-citool function, that bound to
C-c b c. This command runs graphical
utility from BitKeeper's distribution, that is used to commit changes to repository.
To exchange of changesets between repositories, bk defines two functions.
C-c b .) is used to transfer changeset to the parent repository. And
C-c b ,) is used to retrieve new changesets from parent repository. Both these
functions has global key bindings, so you can execute them from any place.
To get list of changes between your file and version in repository, user can use
function, that bound to
C-x v =. And to get changes for all files in
directory and subdirectories you can use
bk-recursive-diffs function (
=). There is also
bk-interesting-diffs function (
C-c b i) that recursively compare
files matched some condition — files that are locked and modified by users, and also
files, that was added, but not yet committed to repository. To display list of locked and
modified files (and also all added files) exists
bk-sfiles function (
C-c b s).
To get short description of package and main commands, user can use
C-c b h). User can also get help on BitKeeper with following functions:
C-c b m) shows manual page for BitKeeper,
C-c b a) makes search in
BitKeeper's documentation, and
bk-helptool function runs graphical help utility from
User can use standard Emacs customization routines to change behaviour of package. With
M-x customize-group bk function, user can set path to BitKeeper's executable files,
command line options, and prefixes for key bindings.
Last change: 05.03.2013 16:54