diff options
Diffstat (limited to 'NEWS')
-rw-r--r-- | NEWS | 396 |
1 files changed, 396 insertions, 0 deletions
@@ -0,0 +1,396 @@ +GNU diffutils NEWS -*- outline -*- + +* Noteworthy changes in release 3.5 (2016-08-20) [stable] + +** Bug fixes + + diff3 no longer malfunctions due to use-after-free + [bug introduced in 3.4] + + diff --color no longer colorizes when TERM=dumb + + +* Noteworthy changes in release 3.4 (2016-08-08) [stable] + +** New features + + diff accepts two new options --color and --palette to generate + and configure colored output. --color takes an optional argument + specifying when to colorize a line: --color=always, --color=auto, + --color=never. --palette is used to configure which colors are used. + +** Bug fixes + + When binary files differ, diff now exits with status 1 as POSIX requires. + Formerly it exited with status 2. + + Unless the --ignore-file-name-case option is used, diff now + considers file names to be equal only if they are byte-for-byte + equivalent. This fixes a bug where diff in an English locale might + consider two Asian file names to be the same merely because they + contain no English characters. + + diff -B no longer generates incorrect output if the two inputs + each end with a one-byte incomplete line. + + diff --brief no longer reports a difference for unusual identical files. + For example, when comparing a file like /proc/cmdline (for which the linux + kernel reports st_size of 0 even though it is not an empty file) to a + copy of that file's contents residing on a "normal" file system: + $ f=/proc/cmdline; cp $f k; diff --brief $f k + Files /proc/cmdline and k differ + +** Performance changes + + diff's default algorithm has been adjusted to output higher-quality + results at somewhat greater computational cost, as CPUs have gotten + faster since the algorithm was last tweaked in diffutils-2.6 (1993). + + +* Noteworthy changes in release 3.3 (2013-03-24) [stable] + +** New features + + diff accepts a new option, --no-dereference. With this option, symbolic + links are treated specially: as a separate type of file that can compare + equal only to another symbolic link with the same value. For example, + with --no-dereference, two symbolic links compare equal when they have + the same value, even when that value does not reference a readable file. + + --new-file (-N) and --unidirectional-new-file now allow comparisons to "-". + A standard input that's closed acts like a nonexistent file. + + A file name containing spaces, double quotes, backslashes or control + characters is now encoded in a diff header as a double-quoted C string + literal. The escape sequences \\, \", \a, \b, \f, \n, \r, \t, \v and + \ooo (a three-digit octal number between 0 and 255) are used. + +** Packaging + + diffutils is now designed to build with Cygwin or MinGW rather than DJGPP. + The ms subdirectory has been removed. + + +* Noteworthy changes in release 3.2 (2011-09-02) [stable] + +** Changes in behavior + + --ignore-file-name-case now applies at the top level too. + For example, "diff dir inIt" might compare "dir/Init" to "inIt". + +** New features + + diff and sdiff have a new option --ignore-trailing-space (-Z). + +** Packaging + + The texinfo documentation no longer specifies "front-cover" or "back-cover" + texts, so that it may now be included in Debian's "main" section. + + +* Noteworthy changes in release 3.1 (2011-08-10) [stable] + +** Bug fixes + + diff no longer reports spurious differences merely because two entries + in the same directory have names that compare equal in the current + locale, or compare equal because --ignore-file-name-case was given. + +* Noteworthy changes in release 3.0 (2010-05-03) [stable] + +** Bug fixes + + diff once again prints the required "\ No newline at end of file" line + when at least one input lacks a newline-at-EOF and the final hunk plus + context-length aligns exactly with the end of the newline-lacking file. + [bug introduced between 2.8.7 and 2.9] + +** Changes in behavior + + In context-style diffs, diff prints a portion of a preceding "function" + line for each hunk, with --show-function-line=RE (-F) or + --show-c-function (-p). Now, it trims leading blanks from such lines + before extracting a prefix. This is useful especially when a function + line is so far indented that the name itself would be truncated or not + included in the limited-width substring that diff appends. + + diff once again reports a difference with the diagnostic + "Binary files A and B differ" when at least one of the files + appears to be binary. From 2.8.4 through diffutils-2.9, it printed + "Files A and B differ". + + +* Noteworthy changes in release 2.9 (2010-02-11) [stable] + +** New features + + New diff option --suppress-blank-empty. + + Bring back support for 'diff -NUM', where NUM is a number, + even when conforming to POSIX 1003.1-2001. This change reverts to + the behavior of GNU diff 2.7 and earlier. This is a change only + when conforming to POSIX 1003.1-2001; there is no effect when + conforming to older POSIX versions. + + This change is in response to decisions taken in the January 2005 + Austin Group standardization meeting. For more details, please see + "Utility Syntax Guidelines" in the Minutes of the January 2005 + Meeting <http://www.opengroup.org/austin/docs/austin_239.html>. + + sdiff now understands '1' and '2' as synonyms for 'l' and 'r'. + +** Changes in behavior + + sdiff and diff3 now invoke diff, not $(bindir)/diff + +** Administrivia + + New discussion and bug-reporting address: bug-diffutils@gnu.org + + updated gnulib support + + +* Noteworthy changes in release 2.8.7 (2004-04-13) [stable] + + Version 2.8.7 contains no user-visible changes. + +User-visible changes in version 2.8.6: + +* New diff3 option --strip-trailing-cr. + +* With -N and -P, inaccessible empty regular files (the kind of files + that 'patch' creates to indicate nonexistent backups) are now + treated as nonexistent when they are in the 'backup' file position. + +* If multiple SKIP values are given to cmp, e.g., 'cmp -i 10 -i 20', + cmp now uses the maximal value instead of the last one. + +* diff now omits the ".000000000" on hosts that do not support + fractional time stamps. + +Version 2.8.5 was not publicly released. + +User-visible changes in version 2.8.4: + +* Diff now simply prints "Files A and B differ" instead of "Binary + files A and B differ". The message is output if either A or B + appears to be a binary file, and the old wording was misleading + because it implied that both files are binary, which is not + necessarily the case. + +User-visible changes in version 2.8.3: + +* New locale: en_US. + +User-visible changes in version 2.8.2: + +* New diff and sdiff option: + --tabsize=COLUMNS +* If --ignore-space-change or --ignore-all-space is also specified, + --ignore-blank-lines now considers lines to be empty if they contain + only white space. +* More platforms now handle multibyte characters correctly when + excluding files by name (diff -x and -X). +* New locales: hu, pt_BR. + +User-visible changes in version 2.8.1: + +* Documentation fixes. + +User-visible changes in version 2.8: + +* cmp and diff now conform to POSIX 1003.1-2001 (IEEE Std 1003.1-2001) + if the underlying system conforms to POSIX and if the _POSIX2_VERSION + environment variable is set to 200112. Conformance removes support + for 'diff -NUM', where NUM is a number. Use -C NUM or -U NUM instead. +* cmp now supports trailing operands SKIP1 and SKIP2, like BSD cmp. +* cmp -i or --ignore-initial now accepts SKIP1:SKIP2 option value. +* New cmp option: -n or --bytes. +* cmp's old -c or --print-chars option has been renamed; + use -b or --print-bytes instead. +* cmp now outputs "byte" rather than "char" outside the POSIX locale. +* cmp -l's index column width now adjusts to fit larger (or smaller) files. +* cmp -l -s and cmp -s -l are not allowed. Use cmp -s or cmp -l instead. +* diff uses ISO 8601 style time stamps for output times (e.g. "2001-11-23 + 16:44:36.875702460 -0800") unless in the C or POSIX locale and the + -c style is specified. +* diff's -I and -F options use the regexp syntax of grep, not of Emacs. +* diff now accepts multiple context arguments, and uses their maximum value. +* New diff and sdiff options: + -E --ignore-tab-expansion + --strip-trailing-cr +* New diff options: + --from-file=FILE, --to-file=FILE + --ignore-file-name-case + --no-ignore-file-name-case +* New diff3 and sdiff option: + --diff-program=PROGRAM +* The following diff options are still accepted, but are no longer documented. + They may be withdrawn in future releases. + -h (omit; it has no effect) + -H (use --speed-large-files instead) + -L (use --label instead) + -P (use --unidirectional-new-file instead) + --inhibit-hunk-merge (omit; it has no effect) +* Recursive diffs now sort file names according to the LC_COLLATE locale + category if possible, instead of using native byte comparison. +* Recursive diffs now detect and report directory loops. +* Diff printf specs can now use the "0" and "'" flags. +* The new sdiff interactive command 'ed' precedes each version with a header. +* On 64-bit hosts, files larger than 2 GB can be compared. +* Some internationalization support has been added, but multibyte locales + are still not completely supported yet. +* Some diagnostics have been reworded slightly for consistency. + Also, 'diff -D FOO' now outputs '/* ! FOO */' instead of '/* not FOO */'. +* The 'patch' part of the manual now describes 'patch' version 2.5.4. +* Man pages are now distributed and installed. +* There is support for DJGPP; see the 'ms' subdirectory and the files + m4/dos.m4 and */setmode.*. + + +User-visible changes in version 2.7: + +* New diff option: --binary (useful only on non-POSIX hosts) +* diff -b and -w now ignore line incompleteness; -B no longer does this. +* cmp -c now uses locale to decide which output characters to quote. +* Help and version messages are reorganized. + + +User-visible changes in version 2.6: + +* New cmp, diff, diff3, sdiff option: --help +* A new heuristic for diff greatly reduces the time needed to compare + large input files that contain many differences. +* Partly as a result, GNU diff's output is not exactly the same as before. + Usually it is a bit smaller, but sometimes it is a bit larger. + + +User-visible changes in version 2.5: + +* New cmp option: -v --version + + +User-visible changes in version 2.4: + +* New cmp option: --ignore-initial=BYTES +* New diff3 option: -T --initial-tab +* New diff option: --line-format=FORMAT +* New diff group format specifications: + <PRINTF_SPEC>[eflmnEFLMN] + A printf spec followed by one of the following letters + causes the integer corresponding to that letter to be + printed according to the printf specification. + E.g. '%5df' prints the number of the first line in the + group in the old file using the "%5d" format. + e: line number just before the group in old file; equals f - 1 + f: first line number in group in the old file + l: last line number in group in the old file + m: line number just after the group in old file; equals l + 1 + n: number of lines in group in the old file; equals l - f + 1 + E, F, L, M, N: likewise, for lines in the new file + %(A=B?T:E) + If A equals B then T else E. A and B are each either a decimal + constant or a single letter interpreted as above. T and E are + arbitrary format strings. This format spec is equivalent to T if + A's value equals B's; otherwise it is equivalent to E. For + example, '%(N=0?no:%dN) line%(N=1?:s)' is equivalent to 'no lines' + if N (the number of lines in the group in the new file) is 0, + to '1 line' if N is 1, and to '%dN lines' otherwise. + %c'C' + where C is a single character, stands for the character C. C may not + be a backslash or an apostrophe. E.g. %c':' stands for a colon. + %c'\O' + where O is a string of 1, 2, or 3 octal digits, stands for the + character with octal code O. E.g. %c'\0' stands for a null character. +* New diff line format specifications: + <PRINTF_SPEC>n + The line number, printed with <PRINTF_SPEC>. + E.g. '%5dn' prints the line number with a "%5d" format. + %c'C' + %c'\O' + The character C, or with octal code O, as above. +* Supported <PRINTF_SPEC>s have the same meaning as with printf, but must + match the extended regular expression %-*[0-9]*(\.[0-9]*)?[doxX]. +* The format spec %0 introduced in version 2.1 has been removed, since it + is incompatible with printf specs like %02d. To represent a null char, + use %c'\0' instead. +* cmp and diff now conform to POSIX 1003.2-1992 (ISO/IEC 9945-2:1993) + if the underlying system conforms to POSIX: + - Some messages' wordings are changed in minor ways. + - "White space" is now whatever C's 'isspace' says it is. + - When comparing directories, if 'diff' finds a file that is not a regular + file or a directory, it reports the file's type instead of diffing it. + (As usual, it follows symbolic links first.) + - When signaled, sdiff exits with the signal's status, not with status 2. +* Now portable to hosts where int, long, pointer, etc. are not all the same + size. +* 'cmp - -' now works like 'diff - -'. + + +User-visible changes in version 2.3: + +* New diff option: --horizon-lines=lines + + +User-visible changes in version 2.1: + +* New diff options: + --{old,new,unchanged}-line-format='format' + --{old,new,unchanged,changed}-group-format='format' + -U +* New diff3 option: + -A --show-all +* diff3 -m now defaults to -A, not -E. +* diff3 now takes up to three -L or --label options, not just two. + If just two options are given, they refer to the first two input files, + not the first and third input files. +* sdiff and diff -y handle incomplete lines. + + +User-visible changes in version 2.0: + +* Add sdiff and cmp programs. +* Add Texinfo documentation. +* Add configure script. +* Improve diff performance. +* New diff options: +-x --exclude +-X --exclude-from +-P --unidirectional-new-file +-W --width +-y --side-by-side +--left-column +--sdiff-merge-assist +--suppress-common-lines +* diff options renamed: +--label renamed from --file-label +--forward-ed renamed from --reversed-ed +--paginate renamed from --print +--entire-new-file renamed from --entire-new-files +--new-file renamed from --new-files +--all-text removed +* New diff3 options: +-v --version +* Add long-named equivalents for other diff3 options. +* diff options -F (--show-function-line) and -I (--ignore-matching-lines) + can now be given more than once. + + + +Copyright (C) 1993-1994, 1998, 2001-2002, 2004, 2006, 2009-2013, 2015-2016 Free +Software Foundation, Inc. + +This file is part of GNU Diffutils. + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. |