bk diff(7.3ce)              BitKeeper User's Manual             bk diff(7.3ce)

NAME
       bk diff - show differences in revision controlled files

SYNOPSIS
       bk diff [<opts>] [<file> ... | -]

DESCRIPTION
       The  bk diff command is typically used to show changes to working files
       relative to the previously checked in version.  Unified diffs are  pro-
       duced by default.

       The bk diff command supports context, unified, procedural, and side-by-
       side diffs.  All of the above can be optionally  annotated  with  file-
       name, author, date, and/or revision numbers.

       To view changes you have made to all of the files in the current direc-
       tory:

           $ bk diff

       To see the changes for all files in your tree:

           $ bk -U diff

OPTIONS
       -A<bdpru>    Align prefix output in a human readable form.  The set  of
                    annotations will be followed by a vertical bar and a space
                    before the data from each line of the file  starts.   Each
                    annotation is aligned in a column.  The option argument[s]
                    turn on one or more annotations as a prefix to each  line.
                    The possible annotations are:

                    b   Prefix each line with the basename of the file.
                    d   Prefix each line with the date of last modification.
                    p   Prefix each line with pathname of the file relative to
                        the root of the repository.
                    r   Prefix each line with the revision of  last  modifica-
                        tion.
                    u   Prefix  each  line the name of the user who last modi-
                        fied it.
       -a<bdpru>    Similar to "-A" but without the alignment.
       -b           Ignore changes in amount of white space.
       -B           Ignore  changes  that  just  insert or delete blank lines.
       -c           Do old-style context diffs.
       -d<date>     Instead of using revision[s] as the versions to diff,  use
                    the revision[s] specified by the date (see help bk range).
       -f           Normally,  bk  diff  does  not  bother  to  diff against a
                    checked out, read only file (unless a revision was  speci-
                    fied).  This option forces bk diff to ignore the read only
                    hint and to do the diff against all specified files.

       -F regex     Only useful in unified diffs, the given regex  will
                    be  matched  with  the  lines before the diff block
                    and, if a match is found, it will be printed  after
                    the  '@@' at the start of the diff block. Typically
                    used to match function declarations.
       -h           Don't print headers.
       -H           Prefix diffs with  the  checkin  comments  of  that
                    range of revisions.  The comments printed are those
                    associated with the set difference of the two revi-
                    sions.
       -l<rev>      Show  all  changes made by the changeset containing
                    rev <rev>.  This  obscure  option  is  useful  when
                    there are multiple deltas in the same changeset and
                    you aren't sure of the changeset boundaries.  Simi-
                    lar to

                        bk changes -i<file> -vvr<rev>

       -L[<url>]    Show all the changes unique to this repository rel-
                    ative to the (outgoing) parent or <url> if one  was
                    specified.   In  this context, "changes" means com-
                    mitted, pending, and/or modified files.  Very simi-
                    lar to:

                        bk -A diff -r@`bk repogca [<url>]`

       -n           Do RCS style diffs.
       --normal     Instead  of  unified diffs (the default) print less
                    verbose diffs like those produced by diff(1).
       -N           If a specified file is not under  revision  control
                    treat  it  as if it were under revision control and
                    the previous checked in version was empty.  Without
                    this option specified files not under revision con-
                    trol are listed as "New file: <filename>".
       -p           Procedural diffs, like "diff -p".
       -r<rev>      Diff revision <rev>.  (Or key  or  changeset  revi-
       -R<rev>      Show  diffs  between parent of <rev> and <rev>.  If
                    no revision is specified and the files  are  listed
                    on standard input as <file>|<rev> then the revision
                    is taken from the standard input.
       -s           Display side-by-side diffs.   The  total  width  is
                    controlled by the COLUMNS environment variable, and
                    defaults to 80.
       --stats      Print a statistics header like diffstat in addition
                    to the normal diff output.
       --stats-only Print  a  statistics  header like diffstat and sup-
                    press the normal diff output.
       -S
       --standalone Use with -L in a nested component when you want the
                    component to act like a standalone repository.
       -u<context>  Print  unified diffs (this is the default). Option-
                    ally, pass the number of lines of context to print.
       -v           Be verbose about non-matching ranges.
       -w           Ignore white space when comparing lines.

EXAMPLES
       You may diff specific revisions:

           $ bk diff -r1.2..1.4 foo.c

       When only one revision is supplied with "-r", then that revision
       is  compared to the working file or the top of trunk if the file
       is not edited.

       A fairly useful thing is to show the differences introduced by a
       specific revision or changeset:

           bk diff -R1.5 foo.c

       Normally, the revisions specified mean the revision in the file.
       Changeset revisions do not match file  revisions  and  sometimes
       you  want  to see the changes for a specific changeset.  Both of
       these accomplish that:

           bk diff -l@<alpha1> <file>
           bk changes -i<file> -vvr<alpha1>

       To create a patch which captures all content changes as well  as
       all new files:

           bk -Axc diff -N

       You  can  use  bk diff to diff your entire tree, including edits
       against an existing changeset revision or tag  in  your  reposi-
       tory.

           $ bk -A diff
           $ bk -A diff -r@<rev>

       To see the diffs in the local tree from the new baseline cset in
       the parent (-L changes diff behavior to look at the whole tree):

           $ bk diff -L

BUGS
       This command does not currently  handle  displaying  differences
       for binary files.

SEE ALSO
       bk changes
       bk difftool
       bk export
       bk range

CATEGORY
       Common
       File

BitKeeper Inc                         1E1                       bk diff(7.3ce)