Compare with revision specified by tag or, when date is specified
and tag is a branch tag, the version from the branch tag as it
existed on date. Zero, one or two
`-r' options can be present. With no `-r'
option, the working file will be compared with the
revision it was based on. With one `-r', that
revision will be compared to your current working file.
With two `-r' options those two revisions will be
compared (and your working file will not affect the
outcome in any way).

One or both `-r' options can be replaced by a
`-D date' option, described above.

The following options specify the format of the
output. They have the same meaning as in GNU diff.
Most options have two equivalent names, one of which is a single letter
preceded by `-', and the other of which is a long name preceded by
`--'.

`-lines'

Show lines (an integer) lines of context. This option does not
specify an output format by itself; it has no effect unless it is
combined with `-c' or `-u'. This option is obsolete. For proper
operation, patch typically needs at least two lines of context.

`-a'

Treat all files as text and compare them line-by-line, even if they
do not seem to be text.

`-b'

Ignore trailing white space and consider all other sequences of one or
more white space characters to be equivalent.

`-B'

Ignore changes that just insert or delete blank lines.

`--binary'

Read and write data in binary mode.

`--brief'

Report only whether the files differ, not the details of the
differences.

`-c'

Use the context output format.

`-C lines'

`--context[=lines]'

Use the context output format, showing lines (an integer) lines of
context, or three if lines is not given.
For proper operation, patch typically needs at least two lines of
context.

`--changed-group-format=format'

Use format to output a line group containing differing lines from
both files in if-then-else format. See section Line group formats.

`-d'

Change the algorithm to perhaps find a smaller set of changes. This makes
diff slower (sometimes much slower).

`-e'

`--ed'

Make output that is a valid ed script.

`--expand-tabs'

Expand tabs to spaces in the output, to preserve the alignment of tabs
in the input files.

`-f'

Make output that looks vaguely like an ed script but has changes
in the order they appear in the file.

`-F regexp'

In context and unified format, for each hunk of differences, show some
of the last preceding line that matches regexp.

`--forward-ed'

Make output that looks vaguely like an ed script but has changes
in the order they appear in the file.

`-H'

Use heuristics to speed handling of large files that have numerous
scattered small changes.

`--horizon-lines=lines'

Do not discard the last lines lines of the common prefix
and the first lines lines of the common suffix.