git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: git format-patch produces invalid patch if the commit adds an empty file?

From
Gwyneth Morgan <gwymor@tilde.club>
Date
Aug 20, 2021, 06:15 UTC
Message-ID
<YR9Iaj/FqAyCMade@tilde.club>
In-Reply-To
<xmqq5yw1ywdk.fsf@gitster.g>
On 2021-08-19 14:09:43-0700, Junio C Hamano wrote:
Show 8 quoted lines
> I do not think our patch injestion machinery in "git apply" minds if
> we added the "--- /dev/null" + "+++ b/<path>" headers (and the
> reverse for removal of an empty file) to the current output, and I
> am not fundamentally opposed to such a change.
> 
> But because it is such a rare event (and a discouraged practice) to
> record a completely empty file, I wouldn't place a high priority on
> doing so myself.

GNU patch chokes in this case with an unquoted filename with spaces. However if we output

	diff --git "a/test cases/common/56 array methods/a.txt" "b/test cases/common/56 array methods/a.txt"
instead of
	diff --git a/test cases/common/56 array methods/a.txt b/test cases/common/56 array methods/a.txt

GNU patch (and Git) will read it correctly. Rather than adding the "---" "+++" lines, could we instead quote filenames in the "diff --git" line when they contain spaces?

Previous: Adam WilliamsonNext: Adam Williamson
Message 4 of 6 in “git format-patch produces invalid patch if the commit adds an empty file?”
  1. Adam WilliamsonAug 17, 2021
  2. Junio C HamanoAug 19, 2021
  3. Adam WilliamsonAug 19, 2021
  4. Gwyneth MorganAug 20, 2021
  5. Adam WilliamsonAug 20, 2021
  6. Junio C HamanoAug 20, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.