NAME
bk rset − list files in a cset or the difference
between two csets
SYNOPSIS
bk rset [−ahSU] −lrev |
−Rrev | −rr1..r2
DESCRIPTION
bk rset is a tool that generates information about a
particular changeset (-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 usually 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 current 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 changeset.
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.
−lrev list
the entire repository as of changeset rev. Mutually
exclusive with −R.
−rr1..r2 List the differences between
changeset r1 and changeset r1.
−Rrev List the differences between the
parent or parents of rev and rev.
−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 several 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
diff(1), patch(1), bk-export,
bk-log, bk-range, bk-terms
CATEGORY
Utility