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)