Handling commit change logs

Stephen Warren swarren at wwwdotorg.org
Wed Aug 20 13:30:12 PDT 2014

On 08/20/2014 02:02 PM, Andreas Färber wrote:
> Hi Javier,
> Am 20.08.2014 17:39, schrieb Javier Martinez Canillas:
>> As you already know when you apply a patch with git am, everything
>> that is between a line with 3 dashes line (---) and the actual diff is
>> omitted since that is where the generated diffstat is placed by git
>> format-patch.
>> We usually rely on that behavior to put there the history of a patch
>> or any information that we think that is useful for reviewers but is
>> not suitable to end in the commit message. Now that means that you
>> have to generate the patch and then manually edit it to add the
>> history there.
>> But since git am omits any text between the first "---" and the diff,
>> it means that you can add a "---" on your actual commit message and
>> anything that follows will be discarded by git am, that way you can
>> maintain your history on your commit message which is way less tedious
>> than manually editing patches.
>> So the second "---" from Tuomas patch is actually the one generated by
>> git format-patch but that gets discarded by git am just like any other
>> text so it causes no harm when other apply the patches.
>> If this not the correct workflow and you have a better way to manage
>> this, I would love to know about it.
> One drawback of having --- in the commit message is that you can't
> cherry-pick but really need to use git-am for it to be stripped.

You can, you just have to either:

* Pass -e to git cherry-pick so you get to edit the patch description,

* Run "git commit --amend" right afterwards,

... and then delete everything starting at ---.

I do this reasonably often on my own patches; I send them to the list, 
get them reviewed, and then cherry-pick them into the Tegra maintainer 
tree rather than saving them from the email client and running git am.

More information about the linux-arm-kernel mailing list