Show differences among three files.
When two people have made independent changes to a common original, 'diff3' can report the differences between the original and the two changed versions, and can produce a merged file that contains both persons' changes together with warnings about conflicts.
The files to compare are MYFILE, OLDFILE, and YOURFILE.
At most one of these three file names can be '-', which tells 'diff3' to read the standard input for that file.
Syntax diff3 [options] MYFILE OLDFILE YOURFILE Options -a --text Treat all files as text and compare them line-by-line, even if they do not appear to be text. -A --show-all Output all changes from OLDFILE to YOURFILE into MYFILE, surrounding all conflicts with bracket lines. -e --ed Output unmerged changes from OLDFILE to YOURFILE into MYFILE. -E --show-overlap Output unmerged changes from OLDFILE to YOURFILE into MYFILE, bracketing conflicts. -x --overlap-only Output unmerged changes from OLDFILE to YOURFILE into MYFILE, output only overlapping changes. -X Output unmerged changes from OLDFILE to YOURFILE into MYFILE, output only overlapping changes, bracketing them. -3 --easy-only Output unmerged changes from OLDFILE to YOURFILE into MYFILE, Output only nonoverlapping changes. -m --merge Output merged file instead of ed script (default -A). Unlike piping the output from 'diff3' to 'ed', this works even for binary files and incomplete lines. -L LABEL --label=LABEL Use LABEL instead of file name. Use the label LABEL for the brackets output by the '-A', '-E' and '-X' options. This option can 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'. -i Append 'w' and 'q' commands at the end of ed scripts. This option must be combined with one of the '-AeExX3' options, and can not be combined with '-m'. -T --initial-tab Output a tab rather than two spaces before the text of a line in normal format. --diff-program=PROGRAM Use PROGRAM to compare files. --strip-trailing-cr strip trailing carriage return on input. -v --version Output the version number of 'diff3'. --help Output this help.
'diff3' normally compares three input files line by line, finds groups of lines that differ, and reports each group of differing lines. Its output is designed to make it easy to inspect two different sets of changes to the same file.
If 'diff3' thinks that any of the files it is comparing is binary (a non-text file), it normally reports an error, because such comparisons are usually not useful. As with 'diff', you can force 'diff3' to consider all files to be text files and compare them line by line by using the '-a' or '--text' options.
Multiple single letter options (unless they take an argument) can be combined into a single command line argument.
An exit status of 0 means diff3 was successful, 1 means some conflicts were found, and 2 means trouble.
"One person can make a difference and every person must try" ~ John F. Kennedy
Related linux commands:
cmp - Compare two files.
diff - Display the differences between two files.
sdiff - merge two files interactively.
Equivalent Windows commands: COMP / FC - Compare and display Characters/Lines which do not match.