diffutils: Marking Conflicts

 
 8.2 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 '--show-all' ('-A') 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
 (⇒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 '--show-overlap' ('-E') option outputs less information than the
 '--show-all' ('-A') 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 '--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
 --label X --label Y --label 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'.