Thread (4 messages) read the whole thread 4 messages, 2 authors, 2017-11-18

Re: Special strings in commit messages

From: Eric Wong <hidden>
Date: 2017-10-08 21:31:10
Subsystem: the rest · Maintainer: Linus Torvalds

Florian Weimer [off-list ref] wrote:
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 <redacted>
Signed-off-by: Eric Wong <redacted>
---
 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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help