bk config-etc(7.3ce) BitKeeper User's Manual bk config-etc(7.3ce)
NAME
bk config-etc - configuring BitKeeper
DESCRIPTION
BitKeeper config files contain repository configuration information
including project description, licensing information, user preferences,
BK/Web preferences, and contact information. Config file entries take
the form of key-value pairs. This page describes the various configu-
ration keys and their possible values.
Each BitKeeper repository must have some minimum configuration informa-
tion available in order to properly execute BitKeeper commands. Repos-
itory configuration information is searched for in the following
places, in order:
`bk root`/BitKeeper/etc/config This repository's config file
`bk root -P`/BitKeeper/etc/config Product repository config file
`bk dotbk`/config Personal config file
/etc/BitKeeper/etc/config Per-machine config file
`bk bin`/config Per-installation config file
`bk root`/BitKeeper/log/config This repository's config file
`bk root -P`/BitKeeper/log/config Product repository config file
$BK_CONFIG Environment variable
The BitKeeper/log/config file[s] are not version controlled but the
BitKeeper/etc/config file[s] are. Having two gives you a way to have
repository specific values that do not propagate.
For detailed information about how all the search order works, or to
CONFIG FILE ENTRIES
AUTOFIX
The bk check command can automatically fix a number of problems found
in a repository. The default is that this variable is on in newly cre-
ated repositories, and that the variable will be passed through as the
"-f" option to bk check. To enable or disable autofix, one of the fol-
lowing should be in your configuration:
autofix:yes
autofix:no
AUTOPOPULATE
Cause all (nested) pull operations to use the --auto-populate option
(thus bringing in missing components as needed). Default is no.
auto_populate:yes
auto_populate:no
BAM SIZE
The optional BAM variable controls how large a binary needs to be to be
stored in BAM. The size is compared to the size of the initial checkin
only. Example values the variable may hold are:
BAM: on
BAM: off
BAM: 1K
BAM: 64K
A "K" suffix means multiply by 1024, a "M" suffix means multiply by
1024^2. The default size, if not specified, is 64K.
BK/WEB PREFERENCES
BK/Web preferences can be specified your configuration. If these pref-
erences are specified, information given will appear on the BK/Web site
for the project.
bkweb specify the BK/Web address for a project
homepage the home page for your project or company
master the location from which source can be cloned
For example,
bkweb: http://mysql.bkbits.net:8080/mysql-5.0
master: bk://mysql.bkbits.net/mysql-5.0
homepage: http://www.mysql.com
CHECKOUT MODE
Specify checkout mode for a repository. If unset, the default is
"none". To change the default, add or change the following line to/in
your configuration:
checkout:<option>
where option is one of:
get Automatically do a bk get <file> after doing a bk delta <file>.
(Checkout in read-only mode.)
edit Automatically do a bk edit <file> after doing a bk delta <file>.
Note: This will also adjust the modification time of the s.file to
be two seconds before the modification time of the gfile, which is
needed in order to prevent make(1) from attempting to re-get the
file. (Checkout in edit mode.)
last Preserve the previous state of <file>. This is like checkout:none
for a clone. If the file was later locked and then checked in, it
will be checked out again with a lock.
none Clear the gfile after doing a bk delta <file>. (This is the
default.)
For those repositories with BAM data, there is a checkout mode specifi-
cally for BAM files:
BAM_checkout:option
where option is as above.
The BitKeeper support team recommends "BAM_checkout:last".
CLOCK SKEW
When BitKeeper is looking for modified files, file time stamps can be
compared to a per-repo database to determine when files are unmodified
leading to a substantial performance improvement in larger reposito-
ries. The "clock_skew" parameter controls how old a file must be
before file time stamps are to be trusted. A certain amount of clock
skew is strongly advised since the use of network file systems can
cause the time stamps to be incorrect. The time is in seconds and
defaults to 604800 (one week).
clock_skew: on # use system defaults
clock_skew: 86400 # one day
clock_skew: off # disable trusting of time stamps
CLONE DEFAULT
When cloning a nested collection, if the -s option is not used, then
the "clone_default" option specifies the default set of compo-
nents/aliases to clone. If "clone_default" is not set then "ALL" is
implied.
clone_default: THERE # always match remote repository
clone_default: PRODUCT # only the product, no components
clone_default: ALL # all components cloned by default
clone_default: MYALIAS # clone MYALIAS by default
COMPRESSION
By default, when you setup a repository in compatibility mode, the com-
pression algorithm will be set to gzip in your configuration as fol-
lows:
compression:gzip
This results in the compression of stored s.files. To make the reposi-
tory use no compression by default, change the compression line your
configuration to be:
compression:none
pression.
DESCRIPTION
The config file must contain a one line description of the contents of
the repository.
description: cross-platform C-like GUI programming language
KEYWORD EXPANSION
Keyword expansion is turned OFF by default. To have keyword expansion
flags applied to a file automatically upon checkin, add the keyword
preference to your configuration.
Keyword preference options are:
sccs expand SCCS keywords (%keyword%).
expand1 expand keywords in the first line that contains keywords
only (avoids printf conflicts).
rcs expand rcs keywords ($keyword$)
For example, having
keyword: sccs, expand1
in the config file will expand SCCS keywords only in the first line
encountered that contains sccs keywords. Note: Setting this option
affects only files created subsequently.
LINE TERMINATION
The UNIX and Windows operating systems use different characters to rep-
resent line terminations (eoln). BitKeeper, by default, sets the eoln
preference to native when an sfile is created. This means that files
checked out on Windows will have the Windows eoln and files checked out
on UNIX will have the UNIX eoln.
When a file is created, the line termination is taken from the "eoln"
configuration variable. It is a per-file flag that may be overridden
with the bk admin command.
Line-termination preference options are:
native Set line termination to the native sequence for the platform
("\n" on UNIX and Linux; "\r\n" on Windows). (This is the
default.)
unix Force line termination to the UNIX standard ("\n").
windows Force line termination to the Windows standard ("\r\n").
To force the UNIX eoln mode on all platforms, your configuration must
have this:
eoln:unix
To force Windows line termination use:
eoln:windows
In general, the default of native line terminations is the right answer
and for exceptions the bk admin command may be used to set this option
on a per file basis.
PARALLEL
By default, BitKeeper runs some processes in parallel to gain perfor-
mance. The defaults are 8 way parallel for NFS and 3 way parallel for
local file systems. You may override the defaults for all cases like
so:
parallel:12
Setting the value to 0 will disable parallelism.
PARTIAL CHECK
BitKeeper may be configured to do a full repository integrity check
after each update. The integrity check validates both internal Bit-
Keeper metadata and file checksums. The integrity checks have been
shown to catch hardware problems such as bad memory chips, bad disk
drives, and software problems such as NFS inserting blocks of nulls in
the middle of files. Unless you have a larger repository (more than
5,000 files and/or more than 100MB) then you may want to enable full
checks all the time.
By default, BitKeeper will run in partial_check mode, which means a
full check is performed no more than once per week and only partial
checks are performed when the repository is updated.
You may control the frequency of the full checks with the following
variable, units are in days. To force a full check every two days:
check_frequency: 2
The following will disable the partial_check mode and force BitKeeper
to perform full integrity checks on every update (safest but at a per-
formance cost):
partial_check: off
PULL STATISTICS
It is possible to make pull print statistics in a format compatible
with diffstats by adding this to your configuration:
stats_after_pull: on
Note that gathering the statistics needs another pass over the data so
if you are very performance sensitive, you might want to keep this
option off.
SYNC
In some environments it may be safer to have BitKeeper do an fsync(2)
after each update of a history file. Some Linux file systems perform
poorly because fsync(2) is implemented as a system wide sync(2).
The default is not to flush but the default may be overridden with:
sync:on
TRIGGER PATHS
By default, triggers are stored in the repository under the Bit-
Keeper/triggers/ directory and this is the only directory searched when
looking for triggers. More than one triggers directory may be used by
setting the triggers variable. The format is one or more paths sepa-
rated by a vertical bar, each path has "BitKeeper/triggers" appended to
it and the resulting path is scanned for triggers. For example, if you
wanted to run triggers from /etc/BitKeeper/triggers and from the repos-
itories' BitKeeper/triggers, set the variable as follows in your con-
figuration:
triggers: /etc|.
The directories are processed in the order found in the variable.
There are several special values which are interpreted:
. This is the default, it means `bk -R pwd`/BitKeeper/triggers is
scanned for triggers.
$BK_DOTBK
If present, `bk dotbk`/BitKeeper/triggers is scanned for triggers.
$BK_BIN
If present, `bk bin`/BitKeeper/triggers is scanned for triggers.
$NONE
If present, with no other values, then no triggers are processed.
$PRODUCT
If present, `bk -P pwd`/BitKeeper/triggers is scanned for triggers.
This only applies when in a component repository of a nested col-
lection. It is a way to run product level triggers in each compo-
nent.
$SOMETHING_ELSE
All other paths starting with "$" are ignored, that character is
reserved.
UPGRADE URL
The upgrade command normally looks for new versions of BitKeeper here:
http://upgrades.bitkeeper.com/upgrades/ but that location may be over-
ridden by setting the upgrade_url field to an different URL.
For example,
upgrade_url: http://www.example.com/bk-release/
The contents of that directory will need to be manually mirrored from
BitKeeper Inc.
USER PREFERENCES
Repository preferences can be defined in your configuration: The gen-
eral format for the repository preference config file is
[filter]preference:option
The optional filter can be any of the following:
no filter preference:option
empty filter []preference:option
per user [jdoe]preference:option
per host [@xyz.com]preference:option
per pathname [:/path/to/repo]preference:option
per user@host [jdoe@xyz.com]preference:option
per repository [:/path/to/repo]preference:option
[@xyz.com:/path/to/repo]preference:option
[jdoe@xyz.com:/path/to/repo]preference:option
Preferences can be listed multiple times with different filters. The
filters are examined in order and the first line that matches the cur-
rent user, host, and pathname is used. So in general the most restric-
tive directives should appear first.
SEE ALSO
bk admin
bk config-gui
bk config
bk setup
bk upgrade
CATEGORY
Overview
Admin
BitKeeper Inc 1E1 bk config-etc(7.3ce)