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

Re: Special strings in commit messages

From
EWEric Wong <e@80x24.org>
Date
Oct 8, 2017, 21:30 UTC
Message-ID
<20171008213053.GA8568@starla>
In-Reply-To
<f54bea17-c245-c644-f974-ca2ac84901c6@redhat.com>
Florian Weimer <fweimer@redhat.com> wrote:
Show 7 quoted lines
> Based on strace output, something in git rebase calls git mailsplit, and it
> probably sees the "\nFrom " string and treats it as a start of a new mail
> message, and things go downhill from there.
> 
> I will escape "\nFrom " in commit messages (probably as "\n.From " or maybe
> "\n>From ", plus escaping for "\n."/"\n>" to make the encoding reversible),
> but I wonder if there is something else I need to escape while I'm at it.

I suppose it's safe to start using mboxrd internally when there's little danger of mixing different git versions.

Totally untested (but passes "make test"), can you try this?
-----8<------
Subject: [PATCH] rebase: use mboxrd format to avoid split errors

The mboxrd format allows the use of embedded "From " lines in commit messages without being misinterpreted by mailsplit

Reported-by: Florian Weimer <fweimer@redhat.com>
Signed-off-by: Eric Wong <e@80x24.org>
---
 git-rebase--am.sh | 2 ++
 1 file changed, 2 insertions(+)
diff --git a/git-rebase--am.sh b/git-rebase--am.sh
index 6e64d40d6f..14c50782e0 100644
--- a/git-rebase--am.sh
+++ b/git-rebase--am.sh
@@ -53,6 +53,7 @@ else
 
 	git format-patch -k --stdout --full-index --cherry-pick --right-only \
 		--src-prefix=a/ --dst-prefix=b/ --no-renames --no-cover-letter \
+		--pretty=mboxrd \
 		$git_format_patch_opt \
 		"$revisions" ${restrict_revision+^$restrict_revision} \
 		>"$GIT_DIR/rebased-patches"
@@ -83,6 +84,7 @@ else
 	fi
 
 	git am $git_am_opt --rebasing --resolvemsg="$resolvemsg" \
+		--patch-format=mboxrd \
 		$allow_rerere_autoupdate \
 		${gpg_sign_opt:+"$gpg_sign_opt"} <"$GIT_DIR/rebased-patches"
 	ret=$?
-- 
EW
Previous: Florian WeimerNext: Florian Weimer
Message 2 of 4 in “Special strings in commit messages”
  1. Florian WeimerOct 8, 2017
  2. Eric WongOct 8, 2017
  3. Florian WeimerOct 9, 2017
  4. rebase: use mboxrd format to avoid split errorsEric Wong, Nov 18, 2017

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.