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

BUG?: git-apply sometimes says "corrupt patch" when adding single lines

From
Tor Arvid Lund <torarvid@gmail.com>
Date
Aug 17, 2010, 23:27 UTC
Message-ID
<AANLkTineHiG9vCpbJzJ2x9CFjZ7LQeExs7cN5YhoZhft@mail.gmail.com>
Hi.

I often use git-gui when staging commits, and I noticed that if the file I'm working with has a:

\ No newline at end of file

... as the last line of the diff, and I try to "Stage lines for commit", then git-gui (or really git-apply, as I understand it) says that I have a "corrupt patch at line <so-and-so>".

I don't really know the git-gui code or the git C code well, but it seems that I got around the error with this small patch:

diff --git a/builtin/apply.c b/builtin/apply.c
index 12ef9ea..124791f 100644
--- a/builtin/apply.c
+++ b/builtin/apply.c
@@ -1335,6 +1335,8 @@ static int parse_fragment(char *line, unsigned long size,
 		 * l10n of "\ No newline..." is at least that long.
 		 */
 		case '\\':
+			if (newlines == oldlines == 1)
+				newlines = oldlines = 0;
 			if (len < 12 || memcmp(line, "\\ ", 2))
 				return -1;
 			break;




Is this a bug? Or is it maybe git-gui that sends something wrong to
git-apply? I don't know... :-/

(I'm using msysGit on Windows, if that matters)

-Tor Arvid-
Next: Jonathan Nieder
Message 1 of 5 in “BUG?: git-apply sometimes says "corrupt patch" when adding single lines”
  1. Tor Arvid LundAug 17, 2010
  2. Jonathan NiederAug 17, 2010
  3. Tor Arvid LundAug 18, 2010
  4. Johannes SixtAug 18, 2010
  5. Tor Arvid LundAug 18, 2010

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.