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

Re: [PATCH] builtin-apply: check for empty files when detecting creation patch

From
Linus Torvalds <torvalds@linux-foundation.org>
Date
May 13, 2008, 22:24 UTC
Message-ID
<alpine.LFD.1.10.0805131514300.3019@woody.linux-foundation.org>
In-Reply-To
<7vprrpswof.fsf@gitster.siamese.dyndns.org>
On Tue, 13 May 2008, Junio C Hamano wrote:
> 
> So I think it is reasonable to use non-/dev/null-ness of first as a cue
> that it is not a creation patch.
I disagree.

The fact is, /dev/null means that for patches generated by GNU diff, but a lot of other systems you'll find that it means no such thing.

Look at CVS-generated patches, or SVN for that matter. The diffs look like this:

	Index: file
	===================================================================
	--- file (revision 0)
	+++ file (working copy)
	@@ -0,0 +1 @@
	+test
and there is no /dev/null there.

The thing is, git-apply is careful, and it's very much careful with respect to *knowing* that there are lots of different versions of "diff" floating around, and lots of different SCM systems that generate odd diff headers. We should absolutely NOT start expecting that diffs are only generated with GNU diff.

So non-/dev/null'ness means absolutely nothing. It means "don't know", and we should leave is_new and is_delete as -1.

		Linus
Previous: Junio C HamanoNext: Junio C Hamano
Message 5 of 12 in “builtin-apply: check for empty files when detecting creation patch”
  1. builtin-apply: check for empty files when detecting creation patchImre Deak, May 8, 2008
  2. Junio C HamanoMay 11, 2008
  3. Imre DeakMay 13, 2008
  4. Junio C HamanoMay 13, 2008
  5. Linus TorvaldsMay 13, 2008
  6. Junio C HamanoMay 13, 2008
  7. Linus TorvaldsMay 13, 2008
  8. Junio C HamanoMay 14, 2008
  9. Linus TorvaldsMay 14, 2008
  10. Junio C HamanoMay 17, 2008
  11. 1/2 builtin-apply: accept patch to an empty fileJunio C Hamano, May 17, 2008
  12. 2/2 builtin-apply: do not declare patch is creation when we do not know itJunio C Hamano, May 17, 2008

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.