threads / discuss / 31161

GNU patch close to next stable release (2)

Subject: GNU patch close to next stable release (2)

## tl;dr

5 messages between Aug 1, 2012 and Aug 2, 2012.

replies: 4people: 5as markdown or json

Andreas Grünbacher· Aug 1, 2012, 11:50 UTC · lore

After another improvement in git-style diff support to better handle concatenated diffs, here is a last call for testing to ensure that the code works well enough to become the next stable release. Please find the latest development snapshots here:

  ftp://alpha.gnu.org/gnu/patch/

The following significant changes have happened since the last stable release in December 2009:

* Support for most features of the "diff --git" format, including renames and
  copies, permission changes, and symlink diffs.  Binary diffs are not
  supported yet; patch will complain and skip them.
* Support for double-quoted filenames in the "diff --git" format: when a
  filename starts with a double quote, it is interpreted as a 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 recognized.
* Patch now ignores destination file names that are absolute or that contain
  a component of "..".  This addresses CVE-2010-4651.
* Refuse to apply a normal patch to a symlink.  (Previous versions of patch
  were replacing the symlink with a regular file.)
* When trying to modify a read-only file, warn about the potential problem
  by default.  The --read-only command line option allows to change this
  behavior.
* Files that should be deleted are now deleted once the entire patch file has
  been read.  This fixes a bug with numbered backup files.
* When a timestamp specifies a time zone, honor that instead of assuming the
  local time zone (--set-date) or Universal Coordinated Time (--set-utc).
* Support for nanosecond precision timestamps.
* Many portability and bug fixes.

Please report bugs or suggestions on the <bug-patch@gnu.org> mailing list, or in the project's bug tracker on Savannah:

  http://savannah.gnu.org/projects/patch

Thanks, Andreas

Junio C Hamano· Aug 1, 2012, 17:58 UTC · re: Andreas Grünbacher · lore

Re: GNU patch close to next stable release (2)

Andreas Grünbacher <agruen@gnu.org> writes:
> * Support for double-quoted filenames in the "diff --git" format: when a
>   filename starts with a double quote, it is interpreted as a 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 recognized.

Is this also available in non-git diffs? IIRC, this extension to allow funny characters in pathnames was proposed by and discussed with Paul Eggert (listed as one of GNU diffutils maintainers at www.gnu.org/software/diffutils/) and git happened to adopt it earlier than "GNU diff" itself did.

I found it a bit odd to see this listed as one of the items needed to support "diff --git" oddity.

Andreas Grünbacher· Aug 2, 2012, 20:02 UTC · re: Junio C Hamano · lore

Re: GNU patch close to next stable release (2)

Junio,
2012/8/1 Junio C Hamano <gitster@pobox.com>:
Show 8 quoted lines
> Andreas Grünbacher <agruen@gnu.org> writes:
>
>> * Support for double-quoted filenames in the "diff --git" format: when a
>>   filename starts with a double quote, it is interpreted as a 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 recognized.
>
> Is this also available in non-git diffs?

I have only enabled this for git-style diffs for now. GNU diff doesn't do filename quoting so far and if it eventually implements a slightly different form of quoting (which I wouldn't recommend), we might be in trouble.

> IIRC, this extension to allow funny characters in pathnames was
> proposed by and discussed with Paul Eggert (listed as one of GNU
> diffutils maintainers at www.gnu.org/software/diffutils/) and git happened
> to adopt it earlier than "GNU diff" itself did.

Paul and Jim, any thoughts about adding filename quoting to GNU diff anytime soon, or about the format?

Thanks, Andreas

Paul Eggert· Aug 2, 2012, 21:08 UTC · lore

Re: GNU patch close to next stable release (2)

On 08/02/2012 01:02 PM, Andreas Grünbacher wrote:
> Paul and Jim, any thoughts about adding filename quoting to GNU diff anytime
> soon, or about the format?
The git format looks OK.  I don't have time right now to add it to GNU diff, tho.
Jim Meyering· Aug 2, 2012, 21:13 UTC · lore

Re: GNU patch close to next stable release (2)

Paul Eggert wrote:
Show 5 quoted lines
> On 08/02/2012 01:02 PM, Andreas Grünbacher wrote:
>> Paul and Jim, any thoughts about adding filename quoting to GNU diff anytime
>> soon, or about the format?
>
> The git format looks OK.  I don't have time right now to add it to GNU diff, tho.

I agree, and have no more free time for the task than Paul does. Would someone care to contribute a complete patch?

← back to recent threads