Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
Known problems:
2
 
3
* The diffutils 2.7 documentation for `patch' is obsolete; this should be
4
  fixed in diffutils 2.8.  Until then, see `patch --help' or `man patch'.
5
 
6
Changes in version 2.5:
7
 
8
* Version control is now independent of whether backups are made.
9
  The -V or --version-control option and the VERSION_CONTROL and
10
  PATCH_VERSION_CONTROL environment variables no longer affect whether
11
  backups are made; they affect only the names of the backup files.
12
 
13
* When asking the user whether to reverse a patch,
14
  the default answer is now `no' instead of `yes'.
15
 
16
* `patch' can now recognize context diffs that have been encapsulated
17
  by prepending "- " to lines beginning with "-" (as per Internet RFC 934).
18
 
19
* `patch' now reports an error if the input contains garbage and no patches.
20
 
21
Changes in version 2.4:
22
 
23
* New options:
24
  -Z or --set-utc sets times of patched files, assuming diff uses UTC (GMT).
25
  -T or --set-time is similar, assuming local time (not recommended).
26
  --backup-if-mismatch makes a backup if the patch does not match exactly
27
  --no-backup-if-mismatch makes a backup only if otherwise requested
28
 
29
* The default is now --backup-if-mismatch unless POSIXLY_CORRECT is set.
30
 
31
* The -B or --prefix, -Y or --basename-prefix, and -z or --suffix options
32
  no longer affect whether backups are made (as they did in patch 2.2 and 2.3);
33
  they now merely specify the file names used when simple backups are made.
34
 
35
* When patching a nonexistent file and making backups, an empty backup file
36
  is now made (just as with traditional patch); but the backup file is
37
  unreadable, as a way of indicating that it represents a nonexistent file.
38
 
39
* `patch' now matches against empty and nonexistent files more generously.
40
  A patch against an empty file applies to a nonexistent file, and vice versa.
41
 
42
* -g or --get and PATCH_GET now have a numeric value that specifies
43
  whether `patch' is getting files.
44
  If the value is positive, working files are gotten from RCS or SCCS files;
45
  if zero, `patch' ignores RCS and SCCS and working files are not gotten;
46
  and if negative, `patch' asks the user whether to get each file.
47
  The default is normally negative, but it is zero if POSIXLY_CORRECT is set.
48
 
49
* The -G or --no-get option introduced in GNU patch 2.3 has been removed;
50
  use -g0 instead.
51
 
52
* The method used to intuit names of files to be patched is changed again:
53
  `Index:' lines are normally ignored for context diffs,
54
  and RCS and SCCS files are normally looked for when files do not exist.
55
  The complete new method is described in the man page.
56
 
57
* By default, `patch' is now more verbose when patches do not match exactly.
58
 
59
* The manual page has a new COMPATIBILITY ISSUES section.
60
 
61
Changes in version 2.3:
62
 
63
* Unless the POSIXLY_CORRECT environment variable is set:
64
 
65
  - `patch' now distinguishes more accurately between empty and
66
    nonexistent files if the input is a context diff.
67
    A file is assumed to not exist if its context diff header
68
    suggests that it is empty, and if the header timestamp
69
    looks like it might be equivalent to 1970-01-01 00:00:00 UTC.
70
  - Files that ``become nonexistent'' after patching are now removed.
71
    When a file is removed, any empty ancestor directories are also removed.
72
 
73
* Files are now automatically gotten from RCS and SCCS
74
  if the -g or --get option is specified.
75
  (The -G or --no-get option, also introduced in 2.3, was withdrawn in 2.4.)
76
 
77
* If the PATCH_VERSION_CONTROL environment variable is set,
78
  it overrides the VERSION_CONTROL environment variable.
79
 
80
* The method used to intuit names of files to be patched is changed.
81
  (It was further revised in 2.4; see above.)
82
 
83
* The new --binary option makes `patch' read and write files in binary mode.
84
  This option has no effect on POSIX-compliant hosts;
85
  it is useful only in on operating systems like DOS
86
  that distinguish between text and binary I/O.
87
 
88
* The environment variables TMP and TEMP are consulted for the name of
89
  the temporary directory if TMPDIR is not set.
90
 
91
* A port to MS-DOS and MS-Windows is available; see the `pc' directory.
92
 
93
* Backup file names are no longer ever computed by uppercasing characters,
94
  since this isn't portable to systems with case-insensitive file names.
95
 
96
Changes in version 2.2:
97
 
98
* Arbitrary limits removed (e.g. line length, file name length).
99
 
100
* On POSIX.1-compliant hosts, you can now patch binary files using the output
101
  of GNU `diff -a'.
102
 
103
* New options:
104
  --dry-run
105
  --help
106
  --verbose
107
  -i FILE or --input=FILE
108
  -Y PREF or --basename-prefix=PREF
109
 
110
* patch is now quieter by default; use --verbose for the old chatty behavior.
111
 
112
* Patch now complies better with POSIX.2 if your host complies with POSIX.1.
113
 
114
  Therefore:
115
  - By default, no backups are made.
116
    (But this was changed again in patch 2.4; see above.)
117
  - The simple backup file name for F defaults to F.orig
118
    regardless of whether the file system supports long file names,
119
    and F~ is used only if F.orig is too long for that particular file.
120
  - Similarly for the reject file names F.rej and F#.
121
 
122
  Also:
123
  - The pseudo-option `+' has been withdrawn.
124
  - -b is equivalent to --version-control=simple;
125
    `-z SUFF' has the meaning that `-b SUFF' used to.
126
  - Names of files to be patched are taken first from *** line and then from
127
    --- line of context diffs; then from Index: line; /dev/tty is
128
    consulted if none of the above files exist.  However, if the patch
129
    appears to create a file, the file does not have to exist: instead,
130
    the first name with the longest existing directory prefix is taken.
131
    (These rules were changed again in patch 2.3 and 2.4; see above.)
132
  - Exit status 0 means success, 1 means hunks were rejected, 2 means trouble.
133
  - `-l' ignores changes only in spaces and tabs, not in other white space.
134
  - If no `-p' option is given, `-pINFINITY' is assumed, instead of trying
135
    to guess the proper value.
136
  - `-p' now requires an operand; use `-p 0' to get the effect of the old plain
137
    `-p' option.
138
  - `-p' treats two or more adjacent slashes as if it were one slash.
139
  - The TERM signal is caught.
140
  - New option `-i F' reads patch from F instead of stdin.
141
 
142
* The `patch' options and build procedure conform to current GNU standards.
143
  For example, the `--version' option now outputs copyright information.
144
 
145
* When the patch is creating a file, but a nonempty file of that name already
146
  exists, `patch' now asks for confirmation before patching.
147
 
148
* RCS is used only if the version control method is `existing'
149
  and there is already an RCS file.  Similarly for SCCS.
150
  (But this was changed again in patch 2.3 and 2.4; see above.)
151
 
152
* Copyright notices have been clarified.  Every file in this version of `patch'
153
  can be distributed under the GNU General Public License.  See README for
154
  details.
155
 
156
Changes in version 2.1:
157
 
158
* A few more portability bugs have been fixed.  The version number has
159
  been changed from 2.0.12g11 to 2.1, because the name
160
  `patch-2.0.12g10' was too long for traditional Unix file systems.
161
 
162
Versions 2.0.12g9 through 2.0.12g11 fix various portability bugs.
163
 
164
Changes in version 2.0.12g8:
165
 
166
* Start of the 12g series, with a GNU-style configure script and
167
  long-named options.
168
* Added the -t --batch option, similar to -f.
169
* Improved detection of files that are locked under RCS or SCCS.
170
* Reinstate the -E option to remove output files that are empty after
171
  being patched.
172
* Print the system error message when system calls fail.
173
* Fixed various bugs and portability problems.