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

Re: git mailinfo with patch parser

From
Junio C Hamano <gitster@pobox.com>
Date
Oct 2, 2019, 05:35 UTC
Message-ID
<xmqq1rvvhfq2.fsf@gitster-ct.c.googlers.com>
In-Reply-To
<87imp77o5k.fsf@mid.deneb.enyo.de>
Florian Weimer <fw@deneb.enyo.de> writes:
> git mailinfo splits a message into headers, commit message, and patch
> text, but does not actually parse the patch text.  As a result, the
> patch portion produced by git mailinfo can contain something that
> looks like a patch, but actually isn't.

Yes, mailinfo is about splitting the header, log message and the remainder, and parsing the remainder to use it as a patch text is left to the consumer of the "patch" file it produces.

> Is there a way to get the patch data, as parsed by git apply or git
> am, and dump it back in patch format, without actually applying the
> patch to a working tree?

So, "the patch data as used by apply" is what you get from mailinfo. If it is a patch that applies to what you have in the working tree and/or the index is something you can/must ask "git apply". IOW, when "git mailinfo" stored in $GIT_DIR/rebase-apply/patch the "remainder" of the message, you could

	git apply --check [--index] $GIT_DIR/rebase-apply/patch

to see if it is an OK patch. If it is, then there is no need to further "dump it back in patch format"; what you just fed to "apply --check" is already in the patch format.

Previous: Florian WeimerNext: Florian Weimer
Message 2 of 3 in “git mailinfo with patch parser”
  1. Florian WeimerOct 2, 2019
  2. Junio C HamanoOct 2, 2019
  3. Florian WeimerOct 2, 2019

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.