bk partition(7.3ce) BitKeeper User's Manual bk partition(7.3ce)
NAME
bk partition - transform a single repository into a nested collection
SYNOPSIS
bk partition [<options>] [-C<components> | -@<url>] <from> <to>
DESCRIPTION
The partition command is used to transform a single large repository to
product composed of a collection of component repositories. The col-
lection of component files is determined by the component list file,
which is a list of directories which will become component repository
roots.
To get the most flexibility out of using a partitioned repository, the
partition should be done such that few, if any, files remain in the top
level product. Best is if the top level product repository is only a
collection of component repositories.
Partition will prune all deleted and missing files, and create an empty
gone file. Any file that used to be in one component and was moved to
another component will only appear in the most recent component.
As part of partition, it is possible to remove the record of some files
that were accidentally added along the way, and or have since been
removed and added to the gone file. A list of keys to be removed is
stored in a prunelist file, one key per line.
To transform many repositories, first transform one into a layout you
like. Then transform the others, using the -@url option naming the
first post-partition repository. Each repository partitioned after the
first must contain all of the csets of the first repository.
OPTIONS
-@<url> Instead of specifying components list and prune list,
specify a url to a repository that has been partitioned.
The result will be a repository that can communicate
with that url, or partition will fail with messages
about why it can't do that.
-C<components> Specify a file containing the directories that will
become component repository roots. The directories are
listed in the file, one per line. Lines starting with #
will be ignored, as well as blank lines.
-P<prunelist> Specify a file containing the keys to be removed before
the partitioning begins. This is similar to running a
bk csetprune before running bk partition. The differ-
ence is that the bk partition command will provide the
stable -k parameter to the csetprune enable the result-
ing repositories to communicate with repositories that
have gone through the same partitioning.
--keep-deleted Normally, partition prunes all deleted files. Use
--keep-deleted to keep the deleted history as part of
the component the file was most recently in before being
deleted.
-j<N> Run the per-component portions of the partition in par-
allel using N processes. Useful for partitioning on
multi-core machines.
-q Run quietly.
EXAMPLE
Suppose there is a repository which has two major subsections, called
doc and src respectively. The repository has grown to be too large and
people working on one part may not need the other part. The following
steps would convert it to a product comprising many components, such as
'doc' and 'src'.
Create a file which defines the partition boundaries. Call it compo-
nents:
$ cat components
# These directory paths are the partition boundaries
# Note that one can be under another: src and src/gnu
# src would get everything under src that is not under src/gnu
doc
src
src/gnu
lib/graph
lib/print
# and the list could go on for hundreds of lines
$
Then run the command to transform the original repo, called standalone
in this example, into a nested collection of repositories, called
nested.
$ bk partition -Ccomponents standalone nested
To partition another repository, you can reference the first partition
you did instead of passing in the component list. Standalone2 must be
a superset of standalone for the partition to work.
$ bk partition -@nested standalone2 nested2
CATEGORY
Nested
BitKeeper Inc 1E1 bk partition(7.3ce)