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)