Michael Witten <mfwitten@xxxxxxxxx> writes: > It would appear that `git rebase' is in fact producing patches with > `git format-patch' and then applying the resulting patches with `git > am', which gets confused by your inline diff; this can be clearly seen > in the `git-rebase--am[.sh]' file. > > Perhaps `git rebase' should be reimplemented to use `git cherry-pick', > or does that suffer from the same problem? I think it just is a simple matter of this one-liner. We were already bending backwards to preserve the original message by not parsing and running stripspace the message in the output from mailinfo, and instead using the log message from the original, but were still using the patch text that came from mailinfo that was split incorrectly because it was fooled by the diff in the commit log message. In the longer term, I think "git-rebase--am.sh" should be rewritten to have format-patch avoid the cost of actually generating the patch text, and the "mailinfo" call that comes above the context shown in this patch should be made conditional---when using "am" for rebasing we do not really care anything but the commit object names, and everything else is figured out from the commit this codepath. git-am.sh | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/git-am.sh b/git-am.sh index 016b505..9a4cb2d 100755 --- a/git-am.sh +++ b/git-am.sh @@ -632,6 +632,7 @@ To restore the original branch and stop patching run \"\$cmdline --abort\"." sed -e '1,/^$/d' >"$dotest/msg-clean" echo "$commit" > "$dotest/original-commit" get_author_ident_from_commit "$commit" > "$dotest/author-script" + git diff-tree --root --binary -m --first-parent "$commit" >"$dotest/patch" else { sed -n '/^Subject/ s/Subject: //p' "$dotest/info" -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html