NAME
bk difftool − BitKeeper graphical differences
viewer
SYNOPSIS
bk difftool [<opts>]
bk difftool [<opts>] dir
bk difftool [<opts>] −
bk difftool [<opts>] file
bk difftool [<opts>] −rrev file
bk difftool [<opts>] −rrev1
−rrev2 file
bk difftool [<opts>] file1 file2
bk difftool [<opts>] path/to/file1 dir
bk difftool [<opts>] −r@cset1
−r@cset2
bk difftool [<opts>] [−S]
−L[url]
DESCRIPTION
The bk difftool command is a side-by-side differences
viewer that shows the files being compared in separate
windows. The differences are color coded, but as you move to
a new diff, that diff becomes highlighted in a bold font.
You can move back and forth through the diffs using the keys
described below.
OPTIONS
−b Ignore changes in amount of white space.
−L[url] Show changes that are unique to
this repository relative to the (outgoing) parent or
url.
−scomp In a nested collection, limit the
files processed to the set of component[s] (or aliases of
components) specified. This option may repeat.
−S
−−standalone When used in a nested
collection, treat the repository as if it were detached
rather than as part of the collection. This option limits
the files being considered to those in the current component
(or product).
−w Ignore white space when comparing lines.
ARGUMENTS
If no arguments are given, bk difftool finds all the
modified files in the repository and allows the user to
select the files they are interested in via a pull-down
menu. Keyboard accelerators may also be be used to navigate
between the files.
If a directory, dir, is given as an argument, bk difftool looks for changes in and only in that directory.
If a dash (−) is given as an argument, bk difftool takes a list of files to view from stdin. For example,
$ bk gfiles -cU
| bk difftool -
$ bk -cgU difftool
If only one file is specified and that file is a locked and modified file, bk difftool will diff the most recent revision against the locked version.
If a revision and a checked out file are specified, bk difftool diffs that version against the checked out file.
If two revisions and a file are specified, bk difftool diffs those two versions of the file.
If two files are specified, bk difftool diffs those two files.
If a file (or a path with a filename) are given as the first argument and a directory is given as the second argument, then the basename of the first argument is appended to the second argument. The purpose of this calling convention is to save typing. For example, if I have multiple-related repositories at the same level in the filesystem and I want to diff a file in the local repository against the same file in another version of the repository, I can do the following:
bk difftool src/filename.c ../../repo/src
The above command is equivalent to doing the following:
bk difftool src/filename.c ../../repo/src/filename.c
If two revs are specified in changeset format, i.e., −r@cset, then the set of files displayed is based on the two changesets; each file that is different as of the specified changesets is shown. This output format can be very useful for reviewing, see examples below. If a file has been renamed, difftool will show the difference in contents as well as the change in the name. Note that this format works in nested repositories as well as standalone repositories.
If the −L option is given, show all the changes unique to this repository relative to the (outgoing) parent or url if one was specified. This is similar to:
bk difftool -r@‘bk repogca [url]‘ -r@+
but not identical in that the -L option will also show any work in progress, such as files that are modified or have pending deltas (not yet committed to a changeset).
Use −S with −L when in a nested component and you want the component to act like a standalone repository.
DISCARDING
FILES
When a file that is being viewed is in the checked out
state, a button labelled discard will be enabled. You
may click this button to discard your changes (see bk
unedit). To perform the discard you must click on the
discard button twice. After the first click you will
be prompted to make a second click. If you click anywhere
other than the discard button, or wait 10 seconds,
the discard will be cancelled.
Once a file has been discarded, it’s corresponding entry in the Files menu will be disabled.
EXAMPLES
To see all the changes between two arbitrary changesets:
bk difftool -r@<rev1> -r@<rev2>
That form can be useful to "collapse" multiple changesets that may have added and then deleted content to the same file[s].
In a nested collection, to do the same as the previous example but limit the output to a particular component or alias:
bk difftool -s<alias> -r@<rev1> -r@<rev2>
In a nested collection, to limit showing changes to a particular component or alias:
bk difftool -s<alias>
KEY BINDINGS
Home Scroll both files to the top
End Scroll both files to the bottom
PageUp Scroll both files one screen up
PageDown Scroll both files one screen down
UpArrow Scroll both files one line up
DownArrow Scroll both files one line down
Left Scroll both files to the left
Right Scroll both files to the right
Control-q Quit
space Next diff
n Next diff
p Previous diff
. Center the current diff on the screen
Control-n Go to then next file
Control-p Go to the previous file
SEE ALSO
bk-config-gui, bk-diff, bk-fmtool,
bk-range
CATEGORY
Common
GUI-tools
Repository