DIFF(I) 5/15/74 DIFF(I) NAME diff - differential file comparator SYNOPSIS diff [ - ] name1 name2 DESCRIPTION Diff tells what lines must be changed in two files to bring them into agreement. The normal output contains lines of these forms: n1 a n3,n4 n1,n2 d n3 n1,n2 c n3,n4 These lines resemble ed commands to convert file name1 into file name2. The numbers after the letters pertain to file name2. In fact, by exchanging `a' for `d' and reading back- ward one may ascertain equally how to convert file name2 in- to name1. As in ed, identical pairs where n1 = n2 or n3 = n4 are abbreviated as a single number. Following each of these lines come all the lines that are affected in the first file flagged by `*', then all the lines that are affected in the second file flagged by `.'. Under the - option, the output of diff is a script of a, c and d commands for the editor ed, which will change the con- tents of the first file into the contents of the second. In this connection, the following shell program may help main- tain multiple versions of a file. Only an ancestral file ($1) and a chain of version-to-version ed scripts ($2,$3,...) made by diff need be on hand. A `latest ver- sion' appears on the standard output. (cat $2 ... $9; echo "1,$p") | ed - $1 Except for occasional `jackpots', diff finds a smallest suf- ficient set of file differences. SEE ALSO cmp(I), comm(I), ed(I) DIAGNOSTICS `jackpot' - To speed things up, the program uses hashing. You have stumbled on a case where there is a chance that this has resulted in a difference being called where none actually existed. Sometimes reversing the order of files will make a jackpot go away. BUGS Editing scripts produced under the - option are naive about creating lines consisting of a single `.'. - 1 -