- publishing free software manuals
Comparing and Merging Files with GNU diff and patch
by David MacKenzie, Paul Eggert, and Richard Stallman
Paperback (6"x9"), 120 pages
ISBN 0954161750
RRP £12.95 ($19.95)

"Well packaged... the quality of information is excellent" --- Linux User and Developer Magazine (Issue 36, Feb 2004) Get a printed copy>>>

14.1 Options to diff3

Below is a summary of all of the options that GNU diff3 accepts. Multiple single letter options (unless they take an argument) can be combined into a single command line argument.

-a
--text
Treat all files as text and compare them line-by-line, even if they do not appear to be text. See section 1.7 Binary Files and Forcing Text Comparisons.
-A
--show-all
Incorporate all unmerged changes from older to yours into mine, surrounding conflicts with bracket lines. See section 8.2 Marking Conflicts.
--diff-program=program
Use the compatible comparison program program to compare files instead of diff.
-e
--ed
Generate an ed script that incorporates all the changes from older to yours into mine. See section 8.1 Selecting Which Changes to Incorporate.
-E
--show-overlap
Like -e, except bracket lines from overlapping changes' first and third files. See section 8.2 Marking Conflicts. With -E, an overlapping change looks like this:
<<<<<<< mine
lines from mine
=======
lines from yours
>>>>>>> yours
--help
Output a summary of usage and then exit.
-i
Generate ‘w’ and ‘q’ commands at the end of the ed script for System V compatibility. This option must be combined with one of the -AeExX3 options, and may not be combined with -m. See section 8.5 Saving the Changed File.
-L label
--label=label
Use the label label for the brackets output by the -A, -E and -X options. This option may be given up to three times, one for each input file. The default labels are the names of the input files. Thus ‘diff3 -L X -L Y -L Z -m A B C’ acts like ‘diff3 -m A B C’, except that the output looks like it came from files named ‘X’, ‘Y’ and ‘Z’ rather than from files named ‘A’, ‘B’ and ‘C’. See section 8.2 Marking Conflicts.
-m
--merge
Apply the edit script to the first file and send the result to standard output. Unlike piping the output from diff3 to ed, this works even for binary files and incomplete lines. -A is assumed if no edit script option is specified. See section 8.3 Generating the Merged Output Directly.
-T
--initial-tab
Output a tab rather than two spaces before the text of a line in normal format. This causes the alignment of tabs in the line to look normal. See section 5.1 Preserving Tab Stop Alignment.
-v
--version
Output version information and then exit.
-x
--overlap-only
Like -e, except output only the overlapping changes. See section 8.1 Selecting Which Changes to Incorporate.
-X
Like -E, except output only the overlapping changes. In other words, like -x, except bracket changes as in -E. See section 8.2 Marking Conflicts.
-3
--easy-only
Like -e, except output only the nonoverlapping changes. See section 8.1 Selecting Which Changes to Incorporate.
ISBN 0954161750Comparing and Merging Files with GNU diff and patchSee the print edition