Go to the first, previous, next, last section, table of contents.


Invoking @command{diff3}

The @command{diff3} command compares three files and outputs descriptions of their differences. Its arguments are as follows:

diff3 options... mine older yours

The files to compare are mine, older, and yours. At most one of these three file names may be `-', which tells @command{diff3} to read the standard input for that file.

An exit status of 0 means @command{diff3} was successful, 1 means some conflicts were found, and 2 means trouble.

Options to @command{diff3}

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

@option{-a}
@option{--text}
Treat all files as text and compare them line-by-line, even if they do not appear to be text. See section Binary Files and Forcing Text Comparisons.
@option{-A}
@option{--show-all}
Incorporate all unmerged changes from older to yours into mine, surrounding conflicts with bracket lines. See section Marking Conflicts.
@option{--diff-program=program}
Use the compatible comparison program program to compare files instead of @command{diff}.
@option{-e}
@option{--ed}
Generate an @command{ed} script that incorporates all the changes from older to yours into mine. See section Selecting Which Changes to Incorporate.
@option{-E}
@option{--show-overlap}
Like @option{-e}, except bracket lines from overlapping changes' first and third files. See section Marking Conflicts. With @option{-E}, an overlapping change looks like this:
<<<<<<< mine
lines from mine
=======
lines from yours
>>>>>>> yours
@option{--help}
Output a summary of usage and then exit.
@option{-i}
Generate `w' and `q' commands at the end of the @command{ed} script for System V compatibility. This option must be combined with one of the @option{-AeExX3} options, and may not be combined with @option{-m}. See section Saving the Changed File.
@option{-L label}
@option{--label=label}
Use the label label for the brackets output by the @option{-A}, @option{-E} and @option{-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 Marking Conflicts.
@option{-m}
@option{--merge}
Apply the edit script to the first file and send the result to standard output. Unlike piping the output from @command{diff3} to @command{ed}, this works even for binary files and incomplete lines. @option{-A} is assumed if no edit script option is specified. See section Generating the Merged Output Directly.
@option{-T}
@option{--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 Preserving Tab Stop Alignment.
@option{-v}
@option{--version}
Output version information and then exit.
@option{-x}
@option{--overlap-only}
Like @option{-e}, except output only the overlapping changes. See section Selecting Which Changes to Incorporate.
@option{-X}
Like @option{-E}, except output only the overlapping changes. In other words, like @option{-x}, except bracket changes as in @option{-E}. See section Marking Conflicts.
@option{-3}
@option{--easy-only}
Like @option{-e}, except output only the nonoverlapping changes. See section Selecting Which Changes to Incorporate.


Go to the first, previous, next, last section, table of contents.