Node:Marking Conflicts, Next:Bypassing ed, Previous:Which Changes, Up:diff3 Merging
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 Sample diff3 Input), 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 subtleties! ======= -- 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.