f78
Marking Conflicts
Contents|Index|Previous|Next
Marking Conflicts
diff3 can mark conflicts in the merged output by bracketing them with special
marker lines. A conflict that comes from two files A and B is marked as follows:
<<<<<<< A
lines from A
=======
lines from B
>>>>>>> B
A conflict that comes from three files A, B and C is marked as follows:
<<<<<<< A
lines from A
||||||| B
lines from B
=======
lines from C
>>>>>>> C
The '-A' or '--show-all' option acts like the '-e' option, except that it brackets conflicts, and it outputs all changes from older to yours, not just the unmerged changes. Thus, given the sample input files (see A Third Sample Input File), 'diff3 -A lao tzu tao' puts brackets around the conflict where only 'tzu' differs:
<<<<<<< tzu
=======
The Way that can be told of is not the eternal Way;
The name that can be named is not the eternal name.
>>>>>>> tao
And it outputs the three-way conflict as follows:
<<<<<<< lao
||||||| tzu
They both may be called deep and profound.
Deeper and more profound,
The door of all s
eff
ubtleties!
=======
-- The Way of Lao-Tzu, tr. Wing-tsit Chan
>>>>>>> tao
The '-E' or'--show-overlap' option outputs less information than the '-A' or '--show-all' option, because it outputs only unmerged changes, and it never outputs the
contents of the second file. Thus the '-E' option acts like the '-e' option, except that it brackets the first and third files from three-way
overlapping changes. Similarly, '-X' acts like '-x', except it brackets all its (necessarily overlapping) changes. For example,
for the three-way overlapping change above, the '-E' and '-X' options output the following:
<<<<<<< lao
=======
-- The Way of Lao-Tzu, tr. Wing-tsit Chan
>>>>>>> tao
If you are comparing files that have meaningless or uninformative names, you
can use the '-L label' or '--label= label' option to show alternate names in the '<<<<<<<', '|||||||' and '>>>>>>>' brackets. This option can be given up to three times, once for each input
file. Thus 'diff3 -A -L X -L Y -L Z A B C' acts like 'diff3 -A 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'.
0