bk rset(7.3ce) BitKeeper User's Manual bk rset(7.3ce)
NAME
bk rset - list files in a cset or the difference between two csets
SYNOPSIS
bk rset [-ahSU] [-s<alias>] -l<rev> | -R<rev> | -r<r1..r2>
DESCRIPTION
bk rset is a tool that generates information about a particular change-
set (-l) or the differences between two changesets (-r/-R) in a form
that can be passed to other tools (see examples below).
The format is some variation of <pathname>|<revs> where the rev is usu-
ally in the MD5 key format. Because MD5 keys are long (here's one:
37d3f5a9b3lm8Qx0jP8XDL8ULRE19A) we don't show actual keys, instead we
show <md5A>..<md5B> in example output.
To see the difference between a changeset and its parent:
$ bk rset -R1.201
ChangeSet|1.200..1.201
src/Makefile|<md5A>..<md5B>
OPTIONS
-a Show deleted files which are normally suppressed.
-h Show the "historic" paths of the file as well as the cur-
rent path. This makes the output look like <current
path>|<start path>|<rev>|<end path>|<rev>. The output
has three file names: current, starting, and ending;
corresponding to the current pathname, the pathname of
the file at the start of the first changeset listed, and
the pathname of the file at the end of the last change-
set.
For merge changesets, the format gets 2 more fields for
any file that has different revs in the history of the
two parents, where neither rev is in the history of the
other. For these files, the output looks like <current
path>|<start1 path>|<rev1>|<start2 path>|<rev2>|<end
path>|<rev>.
-l<rev> list the entire repository as of changeset <rev>. Mutu-
ally exclusive with "-R".
-r<r1..r2> List the differences between changeset <r1> and changeset
<r1>.
-R<rev> List the differences between the parent or parents of
<rev> and <rev>.
-s<alias> In a nested collection, rset can recurse into some or all
of the populated components. Using the -s<alias> option
limits the repositories processed to those specified by
<alias>. If this option is repeated the implied subset
is the union of all specified components. If no <alias>
is specified that is taken to be the same as -sHERE.
-S
--standalone Just run rset on the current component. This has no
effect in a traditional standalone repository, but in a
nested collection, processes just the current component
and not the entire nested collection.
-U User files only (like bk -U). Does not list ChangeSet or
anything under BitKeeper/.
EXAMPLES
Rset is a helper tool, it is used by other tools that want to show you
a view of history. For example, bk difftool -rbk-5.0..bk-6.0 calls
rset to get the set of files to display.
Quite a few of the BitKeeper commands can accept rset input to drive
them, some examples:
bk rset -R+ | bk log -
bk rset -UR+ | bk diff -
The documentation below is for script writers who may want to use rset
to drive bk directly.
To list all the files at their current location (less deleted files, -a
will add those):
$ bk rset -l+
ChangeSet|+
BitKeeper/etc/config|<md5>
RELEASE-NOTES|<md5>
...
src/gui/ChangeSet|<md5>
src/gui/BitKeeper/etc/config|<md5>
src/gui/csettool.tcl|<md5>
...
Show the difference between a merge changeset and its parents:
$ bk rset -R1.2104
ChangeSet|1.2103,1.2058.7.1..1.2104
src/libc/ChangeSet|<md5A>,<md5B>..<md5C>
src/libc/utils/dirs.c|<md5A>,<md5B>..<md5C>
src/libc/utils/fileops.c|<md5A>,<md5B>..<md5C>
...
Show what is the difference between two changesets, in just the GUI
components, showing historical paths. Note that this format is not
parsed by most BitKeeper commands. Also note in the example below sev-
eral of the .tcl files have been renamed to .l files.
$ bk rset -sGUI -h -rbk-6.0.2..bk-6.0.3
src/gui/ChangeSet|src/gui/ChangeSet|<md5A>|src/gui/ChangeSet|<md5B>
src/gui/common.l|src/gui/common.tcl|<md5A>|src/gui/common.l|<md5B>
src/gui/difflib.l|src/gui/difflib.tcl|<md5A>|src/gui/difflib.l|<md5B>
src/gui/fmtool.l|src/gui/fmtool.tcl|<md5A>|src/gui/fmtool.l|<md5B>
src/gui/tcltk/Makefile|src/gui/tcltk/Makefile|<md5A>|src/gui/tcltk/Makefile|<md5B>
...
Show the difference between a merge change and its parents, showing
historic paths. For files which changed on both sides of the merge,
there will be 7 fields instead of 5.
$ bk rset -h -R1.2503
ChangeSet|ChangeSet|1.2502|ChangeSet|1.2468.1.270|ChangeSet|1.2503
src/changes.c|src/changes.c|<md5A>|src/changes.c|<md5B>|src/changes.c|<md5C>
src/sccs.h|src/sccs.h|<md5A>|src/sccs.h|<md5B>|src/sccs.h|<md5C>
src/slib.c|src/slib.c|<md5A>|src/slib.c|<md5B>|src/slib.c|<md5C>
src/t/ChangeSet|src/t/ChangeSet|<md5A>|src/t/ChangeSet|<md5B>|src/t/ChangeSet|<md5C>
...
SEE ALSO
bk export
bk log
bk range
bk terms
CATEGORY
Utility
BitKeeper Inc 1E1 bk rset(7.3ce)