NAME
bk check − check repository for consistency
SYNOPSIS
bk −r check [−acdefgpRvw]
DESCRIPTION
Check is used to make sure that a repository is in a
consistent state. A repository contains files, each of which
may have multiple versions. Groups of versions are called
changesets (csets). Each cset is recorded in the ChangeSet
file. The ChangeSet file points at the set of deltas in the
set of files. There are no back pointers, but the files do
record the point at which each cset occurs (there can be
multiple deltas in a file all of which belong to one cset;
the marker records the cset boundary).
Since csets propagate between repositories, it is important that the ChangeSet file is correct. bk check is used to make sure that nothing has gone wrong (and if it has, it gives you a rough idea of how to fix it).
Currently, the
following are checked:
☞ for each file specified, make sure that deltas
marked as recorded in the ChangeSet file are recorded in the
ChangeSet file.
☞ for each file specified and for each delta of that
file which is recorded in the ChangeSet file, make sure that
the delta exists in the file.
☞ for each file specified, make sure that the file has
no unresolved branches.
☞ make sure that every delta recorded in ChangeSet
file is in the repository (only with −a).
While you can specify a list of files instead of using bk −r to get all of them, this is not recommended.
OPTIONS
−a Ensures that the ChangeSet file and the
repository agree on what files are in the repository; also
ensures that the ChangeSet and other files agree on where
they are in the repository history timeline.
−c Check file and the per delta checksums. Note
that only the most recent delta’s checksum is checked,
see bk checksum to check all of the checksums.
−d Provide more details about what is wrong.
Mainly for debugging.
−e Check for end of line (eoln) inconsistencies in
text files. Typically used with the −a option.
This will check to make sure that:
☞ the state of the
EOLN_NATIVE flag in each sfile is consistent with
what is set in the BitKeeper/etc/config file (see
bk admin).
☞ a bk file on a win32 operating system that has the
EOLN_NATIVE flag set has the expected line
termination: \r\n
☞ a file on a UNIX operating system has the expected
line termination: \n
☞ a file that does not have the EOLN_NATIVE
flag is has the expected line termination: \n
−f Fix any fixable
errors. This option will renumber incorrectly numbered
revisions, put incorrectly located files where they belong,
reconstruct corrupted xflags metadata, and add missing
changeset backpointers. This option is on by default if the
auto_fix config option is set.
−ff Fix any fixable errors which have destructive
fixes. This option will remove any old line-of-development
(LOD) information except the 1.x LOD.
−g List each missing file as the file’s
identifier (root key), but do not produce any other output.
Typically used as input to the bk gone command.
−gg List each missing delta key, but do not
produce any other output. Typically used as input to the
bk gone command.
−ggg List both missing files and missing deltas.
Typically used as input to the bk gone command.
−p List deltas which are in more than one
changeset.
−R Only do checks which make sense in the
RESYNC dir.
−v Be more verbose. Each −v adds
additional verbosity. With just one, bk check will
display a progress bar. With two, bk check will list
each file which is OK. More than two is for debugging only.
Without the −v option, there is no output if
the repository is OK; there is only output if things are
broken.
−w List files which are writable but not
locked.
SEE ALSO
bk-admin, bk-checksum, bk-config-etc,
bk-gone, bk-log, bk-xflags
CATEGORY
Repository