bk difftool(7.3ce) BitKeeper User's Manual bk difftool(7.3ce)
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>] -r<rev> <file>
bk difftool [<opts>] -r<rev1> -r<rev2> <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>.
-s<comp> 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 col-
lection. 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 inter-
ested 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 mul-
tiple-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 for-
mat 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 reposi-
tory 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 dis-
card 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 compo-
nent 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
BitKeeper Inc 1E1 bk difftool(7.3ce)