The context output format starts with a two-line header, which looks like this:
*** from-file from-file-modification-time --- to-file to-file-modification time
The time stamp normally looks like ‘2002-02-21 23:30:39.942229878 -0800’ to indicate the date, time with fractional seconds, and time zone in Internet RFC 2822 format. (The fractional seconds are omitted on hosts that do not support fractional time stamps.) However, a traditional time stamp like ‘Thu Feb 21 23:30:39 2002’ is used if the LC_TIME locale category is either ‘C’ or ‘POSIX’.
You can change the header's content with the --label=label option; see Alternate Names.
Next come one or more hunks of differences; each hunk shows one area where the files differ. Context format hunks look like this:
*************** *** from-file-line-numbers **** from-file-line from-file-line... --- to-file-line-numbers ---- to-file-line to-file-line...
If a hunk contains two or more lines, its line numbers look like ‘start,end’. Otherwise only its end line number appears. An empty hunk is considered to end at the line that precedes the hunk.
The lines of context around the lines that differ start with two space characters. The lines that differ between the two files start with one of the following indicator characters, followed by a space character:
If all of the changes in a hunk are insertions, the lines of from-file are omitted. If all of the changes are deletions, the lines of to-file are omitted.