# git-am strips newlines in some commit messages?

2 messages from 2008-02-13 to 2008-02-13. Participants: Miklos Vajna, Jakub Narebski.
Thread: https://gitlist.dev/t/12069

## Miklos Vajna, 2008-02-13 08:32

Subject: git-am strips newlines in some commit messages?
Message-ID: <20080213083200.GP25954@genesis.frugalware.org>
URL: https://gitlist.dev/e/20080213083200.GP25954%40genesis.frugalware.org

```
hello,

it seems that in case the second line of a commit message is not empty,
then git am strips newlines from the commit message. is this expected?

vmiklos@gaia:~/git/t$ git init
Initialized empty Git repository in .git/
vmiklos@gaia:~/git/t$ echo foo > foo.c
vmiklos@gaia:~/git/t$ git add foo.c
vmiklos@gaia:~/git/t$ git commit -m foo
Created initial commit d0d61f2: foo
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 foo.c
vmiklos@gaia:~/git/t$ echo bar >> foo.c
vmiklos@gaia:~/git/t$ git commit -a
< here is insert "-foo\n-bar\n-baz" >
Created commit a928423: - foo
 1 files changed, 1 insertions(+), 0 deletions(-)
vmiklos@gaia:~/git/t$ git format-patch HEAD^
0001-foo.patch
vmiklos@gaia:~/git/t$ git reset --hard HEAD^
HEAD is now at d0d61f2... foo
vmiklos@gaia:~/git/t$ cat 0001-foo.patch |git am
Applying - foo - bar - baz
vmiklos@gaia:~/git/t$ head -n 6 0001-foo.patch
From a928423a563201d95cf2e53c5050dbdfb415708e Mon Sep 17 00:00:00 2001
From: Miklos Vajna <vmiklos@frugalware.org>
Date: Wed, 13 Feb 2008 09:23:49 +0100
Subject: [PATCH] - foo
 - bar
 - baz
vmiklos@gaia:~/git/t$ git --no-pager log -1
commit 8af2dc6b5df430e004d6887c3e05d5295a16c947
Author: Miklos Vajna <vmiklos@frugalware.org>
Date:   Wed Feb 13 09:23:49 2008 +0100

    - foo - bar - baz

of maybe the solution would be that git format-patch inserts two
newlines after the subject - even if the second line would not empty
originally.

thanks,
- VMiklos

```

## Jakub Narebski, 2008-02-13 09:15

Subject: Re: git-am strips newlines in some commit messages?
Message-ID: <m3skzxcj5c.fsf@localhost.localdomain>
URL: https://gitlist.dev/e/m3skzxcj5c.fsf%40localhost.localdomain
In-Reply-To: <20080213083200.GP25954@genesis.frugalware.org>

```
Miklos Vajna <vmiklos@frugalware.org> writes:

> it seems that in case the second line of a commit message is not empty,
> then git am strips newlines from the commit message. is this expected?

> vmiklos@gaia:~/git/t$ cat 0001-foo.patch |git am
> Applying - foo - bar - baz
> vmiklos@gaia:~/git/t$ head -n 6 0001-foo.patch
> From a928423a563201d95cf2e53c5050dbdfb415708e Mon Sep 17 00:00:00 2001
> From: Miklos Vajna <vmiklos@frugalware.org>
> Date: Wed, 13 Feb 2008 09:23:49 +0100
> Subject: [PATCH] - foo
>  - bar
>  - baz

git-am assumes that patch is in email form, and in email there is
single empty line separating email headers from email body. What makes
git-am mangle your commit message is the fact that email format allows
for header to span multiple lines: you have continuation lines to have
indented by whitespace. So git-am thinks that " - bar - baz" is
continuation of Summary: header.

> of maybe the solution would be that git format-patch inserts two
> newlines after the subject - even if the second line would not empty
> originally.

Decidely. This empty line would always be stripped.

-- 
Jakub Narebski
Poland
ShadeHawk on #git

```
