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

Re: [PATCH v3] apply.c: fix -p argument parsing

From
Jeff King <peff@peff.net>
Date
Mar 13, 2026, 01:29 UTC
Message-ID
<20260313012905.GA3749719@coredump.intra.peff.net>
In-Reply-To
<20260313011259.GA3204960@coredump.intra.peff.net>
On Thu, Mar 12, 2026 at 09:12:59PM -0400, Jeff King wrote:
Show 13 quoted lines
> Getting back to your patch: why is there a CRLF here in the first place?
> Because on Windows, we check out the whole repo with CRLF conversion,
> except for a few known file types listed in .gitattributes. And that
> includes your t/t4120/patch file.
> 
> Coincidentally the style suggestion I made earlier, to just inline it in
> the t4120 script itself, makes the problem go away. Because we check out
> those scripts with bare line feeds, per .gitattributes, the file we
> create will also have regular line feeds.
> 
> So I would suggest doing that as a workaround. It might be worth
> addressing the CRLF header parsing problem above, too, but I think that
> should be a separate topic.

In case we want to pursue the CRLF thing further, you can demonstrate it on Linux easily with:

  {
    printf 'diff --git a/file b/file\r\n'
    printf 'old mode 100644'
    printf 'new mode 100755'
  } >patch
  git apply patch

I was surprised that we wouldn't hit this case _somewhere_ in the test suite already, and indeed we do. Even with a separate patch file, like you have! But the tests pass due to 614f4f0f35 (Fix the remaining tests that failed with core.autocrlf=true, 2017-05-09), which explicitly adds .gitattributes for "t/t4101/*", etc.

So that's another workaround for your patch: we could mark the directory with .gitattributes in the same way. I still prefer inlining the patch in the script for style reasons, though.

-Peff
Previous: Jeff KingNext: Junio C Hamano
Message 10 of 19 in “apply.c: fix -p argument parsing”
  1. apply.c: fix -p argument parsingMirko Faina, Mar 9, 2026
  2. Junio C HamanoMar 9, 2026
  3. apply.c: fix -p argument parsingMirko Faina, Mar 10, 2026
  4. Junio C HamanoMar 10, 2026
  5. Mirko FainaMar 10, 2026
  6. apply.c: fix -p argument parsingMirko Faina, Mar 10, 2026
  7. Junio C HamanoMar 10, 2026
  8. Jeff KingMar 13, 2026
  9. Jeff KingMar 13, 2026
  10. Jeff KingMar 13, 2026
  11. Junio C HamanoMar 13, 2026
  12. Junio C HamanoMar 13, 2026
  13. apply.c: fix -p argument parsingMirko Faina, Mar 13, 2026
  14. Junio C HamanoMar 13, 2026
  15. apply.c: fix -p argument parsingMirko Faina, Mar 16, 2026
  16. Mirko FainaMar 16, 2026
  17. Junio C HamanoMar 16, 2026
  18. Tian YuchenMar 15, 2026
  19. Mirko FainaMar 15, 2026

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.