Annotation of 43BSDTahoe/man/man1/diff.1, revision 1.1.1.1

1.1       root        1: .\" Copyright (c) 1980 Regents of the University of California.
                      2: .\" All rights reserved.  The Berkeley software License Agreement
                      3: .\" specifies the terms and conditions for redistribution.
                      4: .\"
                      5: .\"    @(#)diff.1      6.4 (Berkeley) 5/19/86
                      6: .\"
                      7: .TH DIFF 1 "May 19, 1986"
                      8: .UC 4
                      9: .SH NAME
                     10: diff \- differential file and directory comparator
                     11: .SH SYNOPSIS
                     12: .B diff
                     13: [
                     14: .B \-l
                     15: ] [
                     16: .B \-r
                     17: ] [
                     18: .B \-s
                     19: ] [
                     20: \fB\-cefhn\fR
                     21: ] [
                     22: .B \-biwt
                     23: ] dir1 dir2
                     24: .br
                     25: .B diff
                     26: [
                     27: \fB\-cefhn
                     28: ] [
                     29: \fB\-biwt\fR
                     30: ] file1 file2
                     31: .br
                     32: .B diff
                     33: [
                     34: .BI \-D string
                     35: ] [
                     36: .B \-biw
                     37: ]
                     38: file1 file2
                     39: .SH DESCRIPTION
                     40: If both arguments are directories,
                     41: .I diff
                     42: sorts the contents of the directories by name, and then runs the
                     43: regular file
                     44: .I diff
                     45: algorithm (described below)
                     46: on text files which are different.
                     47: Binary files which differ,
                     48: common subdirectories, and files which appear in only one directory
                     49: are listed.
                     50: Options when comparing directories are:
                     51: .TP
                     52: .B \-l
                     53: long output format; each text file
                     54: .I diff
                     55: is piped through
                     56: .IR pr (1)
                     57: to paginate it,
                     58: other differences are remembered and summarized
                     59: after all text file differences are reported.
                     60: .TP
                     61: .B \-r
                     62: causes application of
                     63: .I diff
                     64: recursively to common subdirectories encountered.
                     65: .TP
                     66: .B \-s
                     67: causes 
                     68: .I diff
                     69: to report files which are the same, which are otherwise not mentioned.
                     70: .TP
                     71: .B \-Sname
                     72: starts a directory
                     73: .I diff
                     74: in the middle beginning with file
                     75: .I name.
                     76: .PP
                     77: When run on regular files, and when comparing text files which differ
                     78: during directory comparison,
                     79: .I diff
                     80: tells what lines must be changed in the files to bring them into agreement.
                     81: Except in rare circumstances,
                     82: .I diff
                     83: finds a smallest sufficient set of file differences.
                     84: If neither
                     85: .I file1
                     86: nor
                     87: .I file2
                     88: is a directory, then either
                     89: may be given as `\-', in which case the standard input is used.
                     90: If
                     91: .I file1
                     92: is a directory,
                     93: then a file in that directory whose file-name is the same as the file-name of
                     94: .I file2
                     95: is used (and vice versa).
                     96: .PP
                     97: There are several options for output format;
                     98: the default output format contains lines of these forms:
                     99: .IP "" 5
                    100: .I n1
                    101: a
                    102: .I n3,n4
                    103: .br
                    104: .I n1,n2
                    105: d
                    106: .I n3
                    107: .br
                    108: .I n1,n2
                    109: c
                    110: .I n3,n4
                    111: .PP
                    112: These lines resemble
                    113: .I ed
                    114: commands to convert
                    115: .I file1
                    116: into
                    117: .IR file2 .
                    118: The numbers after the letters pertain to
                    119: .IR file2 .
                    120: In fact, by exchanging `a' for `d' and reading backward
                    121: one may ascertain equally how to convert 
                    122: .I file2
                    123: into
                    124: .IR file1 .
                    125: As in 
                    126: .I ed,
                    127: identical pairs where
                    128: .I n1
                    129: =
                    130: .I n2
                    131: or
                    132: .I n3
                    133: =
                    134: .I n4
                    135: are abbreviated as a single number.
                    136: .PP
                    137: Following each of these lines come all the lines that are
                    138: affected in the first file flagged by `<', 
                    139: then all the lines that are affected in the second file
                    140: flagged by `>'.
                    141: .PP
                    142: Except for
                    143: \fB\-b, -w, -i\fP or \fB-t\fP
                    144: which may be given with any of the others,
                    145: the following options are mutually exclusive:
                    146: .TP 9
                    147: .B \-e
                    148: produces a script of
                    149: .I "a, c"
                    150: and 
                    151: .I d
                    152: commands for the editor
                    153: .I ed,
                    154: which will recreate
                    155: .I file2
                    156: from
                    157: .IR file1 .
                    158: In connection with
                    159: .BR \-e ,
                    160: the following shell program may help maintain
                    161: multiple versions of a file.
                    162: Only an ancestral file ($1) and a chain of 
                    163: version-to-version
                    164: .I ed
                    165: scripts ($2,$3,...) made by
                    166: .I diff
                    167: need be on hand.
                    168: A `latest version' appears on
                    169: the standard output.
                    170: .IP
                    171: \ \ \ \ \ \ \ \ (shift; cat $*; echo \'1,$p\') \(bv ed \- $1
                    172: .IP
                    173: Extra commands are added to the output when comparing directories with
                    174: .B \-e,
                    175: so that the result is a
                    176: .IR sh (1)
                    177: script for converting text files which are common to the two directories
                    178: from their state in
                    179: .I dir1
                    180: to their state in
                    181: .I dir2.
                    182: .TP 9
                    183: .B \-f
                    184: produces a script similar to that of
                    185: .B \-e,
                    186: not useful with
                    187: .I ed,
                    188: and in the opposite order.
                    189: .TP 9
                    190: .B \-n
                    191: produces a script similar to that of
                    192: .B \-e,
                    193: but in the opposite order and with a count of changed lines on each
                    194: insert or delete command.  This is the form used by
                    195: .IR rcsdiff (1).
                    196: .TP 9
                    197: .B \-c
                    198: produces a diff with lines of context.
                    199: The default is to present 3 lines of context and may be changed, e.g to 10, by
                    200: .BR \-c10 \&.
                    201: With
                    202: .B \-c
                    203: the output format is modified slightly:
                    204: the output beginning with identification of the files involved and
                    205: their creation dates and then each change is separated
                    206: by a line with a dozen *'s.
                    207: The lines removed from
                    208: .I file1
                    209: are marked with `\(mi '; those added to
                    210: .I file2
                    211: are marked `+ '.  Lines which are changed from one
                    212: file to the other are marked in both files with with `! '.
                    213: 
                    214: Changes which lie within <context> lines of each other are grouped
                    215: together on output.  (This is a change from the previous ``diff -c''
                    216: but the resulting output is usually much easier to interpret.)
                    217: .TP 9
                    218: .B \-h
                    219: does a fast, half-hearted job.
                    220: It works only when changed stretches are short
                    221: and well separated,
                    222: but does work on files of unlimited length.
                    223: .TP
                    224: .B \-Dstring
                    225: causes
                    226: .I diff
                    227: to create a merged version of
                    228: .I file1
                    229: and
                    230: .I file2
                    231: on the standard output, with C preprocessor controls included so that
                    232: a compilation of the result without defining \fIstring\fR is equivalent
                    233: to compiling
                    234: .I file1,
                    235: while defining
                    236: .I string
                    237: will yield
                    238: .I file2.
                    239: .TP 9
                    240: .B \-b
                    241: causes trailing blanks (spaces and tabs) to be ignored, and other
                    242: strings of blanks to compare equal.
                    243: .TP 9
                    244: .B \-w
                    245: is similar to
                    246: .B \-b
                    247: but causes whitespace (blanks and tabs) to be totally ignored.  E.g.,
                    248: ``if\ (\ a\ ==\ b\ )'' will compare equal to ``if(a==b)''.
                    249: .TP 9
                    250: .B \-i
                    251: ignores the case of letters.  E.g., ``A'' will compare equal to ``a''.
                    252: .TP 9
                    253: .B \-t
                    254: will expand tabs in output lines.  Normal or
                    255: .B \-c
                    256: output adds character(s) to the front of each line which may screw up
                    257: the indentation of the original source lines and make the output listing
                    258: difficult to interpret.  This option will preserve the original source's
                    259: indentation.
                    260: .SH FILES
                    261: /tmp/d?????
                    262: .br
                    263: /usr/lib/diffh for 
                    264: .B \-h
                    265: .br
                    266: /bin/diff for directory diffs
                    267: .br
                    268: /bin/pr
                    269: .SH "SEE ALSO"
                    270: cmp(1), cc(1), comm(1), ed(1), diff3(1)
                    271: .SH DIAGNOSTICS
                    272: Exit status is 0 for no differences, 1 for some, 2 for trouble.
                    273: .SH BUGS
                    274: Editing scripts produced under the
                    275: .BR \-e " or"
                    276: .BR \-f " option are naive about"
                    277: creating lines consisting of a single `\fB.\fR'.
                    278: .PP
                    279: When comparing directories with the
                    280: \fB\-b, -w\fP or \fB-i\fP
                    281: options specified,
                    282: .I diff
                    283: first compares the files ala
                    284: .I cmp,
                    285: and then decides to run the
                    286: .I diff
                    287: algorithm if they are not equal.
                    288: This may cause a small amount of spurious output if the files
                    289: then turn out to be identical because the only differences are
                    290: insignificant blank string or case differences.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.