Contents|Index|Previous|Next

Showing Differences Side by Side

diff can produce a side by side difference listing of two files. The files are listed in two columns with a gutter between them. The gutter contains one of the following markers:

white space
The corresponding lines are in common. That is, either the lines are identical, or the difference is ignored because of one of the '--ignore' options (see Suppressing Differences in Blank and Tab Spacing).

'|'
The corresponding lines differ, and they are either both com-plete or both incomplete.

'<'
The files differ and only the first file contains the line.

'>'
The files differ and only the second file contains the line.

'('
Only the first file contains the line, but the difference is ig-nored.

')'
Only the second file contains the line, but the difference is ignored.

'\'
The corresponding lines differ, and only the first line is in-complete.

'/'
The corresponding lines differ, and only the second line is incomplete.

Normally, an output line is incomplete if and only if the lines that it contains are incomplete; see Incomplete Lines. However, when an output line represents two differing lines, one might be incomplete while the other is not. In this case, the output line is complete, but its the gutter is marked '\' if the first line is incomplete, '/' if the second line is.

Side by side format is sometimes easiest to read, but it has limitations. It generates much wider output than usual, and truncates lines that are too long to fit. Also, it relies on lining up output more heavily than usual, so its output looks particularly bad if you use varying width fonts, nonstandard tab stops, or nonprinting characters.

You can use the sdiff command to interactively merge side by side differences. See Interactive Merging with sdiff for more information on merging files.