[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

GNU patch: new 2.6 release

From: Andreas Gruenbacher
Subject: GNU patch: new 2.6 release
Date: Fri, 13 Nov 2009 15:32:52 +0100
User-agent: KMail/1.12.2 (Linux/; KDE/4.3.1; i686; ; )

I am pleased to announce my first release of GNU patch,
available by anonymous FTP from:

The last release dates back to June 2004 with version 2.5.9.  A new Savannah 
project has been created with the new code repository and the bug-patch 
mailing list archive at:

A lot of changes have accumulated since version 2.5.9.  The following user 
visible changes have been made:

* A regression test suite has been added ("make check").

* A --merge option has been added which will merge a patch file into
  the original files similar to merge(1).  See the patch(1) manual page for

* Unless a file name has been specified on the command line, look only
  for file names in the patch until one has been found.  This prevents
  patch from tripping over garbage that isn't a patch.  When conforming
  to POSIX, this behavior is turned off and patch will ask for a
  file name when none is found.

* All reject files have file name headers now, which allows them to be used as
  regular patches.

* When a patch file modifies the same file more than once, patch makes
  sure it backs up the original version of the file rather than any
  intermediary versions.

* In the above situation, if there are rejects in more than one of those
  patches, they all go into the same reject file.

* When the file to be patched is specified on the command line, all patches
  are applied to that file. (Previously, the first patch was applied to the
  file specified on the command line, and the names of additional files to
  patch were taken from header lines in the patch file.)

* The -r option now works correctly even if there are rejects in more than
  one file.  Use the - argument to discard rejects.

* Rejected hunks come out in unified diff format if the input patch was of
  that format, otherwise in ordinary context diff form.  Use the
  --reject-format option to enforce either "context" or "unified" format.
  Timestamps and the "diff -p" (--show-c-function) output are preserved.
  Changed lines in context format reject files are correctly indicated
  with '!' markers as the format defines.  Added and removed lines are
  still marked with '+' and '-', respectively.

* The file permissions of reject files are no longer set to match the files
  they modify.  Instead, they retain the default permissions.  This is
  consistent with reject files produced with the -r option.

* The --binary option disables the heuristic for stripping CRs from
  line endings in patches.  This allows to preserve CRs even in mangled
  patches, or in patches generated on non-POSIX systems and without the
  --binary option.

* Backup files for non-existing files are now created with default
  permissions rather than with mode 0: backup files with mode 0 were
  causing problems with applications which do not expect unreadable

* The -B, -Y, and -z options (--prefix, --basename-prefix, --suffix) now
  imply the simple version control mode, and can be combined.

* Patch rejects more malformed normal format commands and checks for trailing
  garbage.  It now recognizes ed commands without addresses.

* Change the default value of PATCH_GET to 0.  (Previously, the default was 0
  under POSIXLY_CORRECT and negative otherwise; this is causing problems
  particularly with Perforce.)

* Handle missing timestamps better.

Please email bugs or suggestions to <address@hidden>.  (Check the Savannah 
project's bug tracker for a list of known issues.)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]