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

Re: Bug: "git log --format='format:%+s%+b'" doesn't insert newline before body

From
ITIlya Tumaykin <itumaykin@gmail.com>
Date
Jul 25, 2016, 07:51 UTC
Message-ID
<1693749.WYZjdcdZj5@photon>
In-Reply-To
<alpine.DEB.2.20.1607250926320.14111@virtualbox>
On Monday 25 July 2016 09:33:00 Johannes Schindelin wrote:
Show 28 quoted lines
> Hi Ilya,
> 
> On Sun, 24 Jul 2016, Ilya Tumaykin wrote:
> > Steps to reproduce:
> > $ git init
> > $ >123
> > $ git add 123
> > $ git commit -v -m 'This is subject' -m 'And this is body'
> > $ git --no-pager log -1 --format='format:%+s%+b'
> > 
> > Actual results:
> > ```
> > 
> > This is subject
> > And this is body
> > ```
> > 
> > Expected results:
> > ```
> > 
> > This is subject
> > 
> > And this is body
> > ```
> 
> The empty line between commit subject and body is neither part of the
> subject nor of the body. That means that the above-mentioned expectation
> was incorrect.

According to 'git-log' man page '%+b' should insert linefeed "immediately before the expansion if and only if the placeholder expands to a non-empty string." Here "%b" expands to a non-empty string, thus I expect a linefeed before it. Or am I misinterpreting man page somehow?

> Unless you somehow allow empty commit messages (Git does not, unless you
> play games with low-level commands), the second '+' is unnecessarily
> conditional. Therefore "%s%n%+b" *might* do what you intended (I would not
> know, because that information was missing from the report).

I want to display '%B', but add colours to '%s'. Thus I have to separately include '%s' and '%b', and not just '%B'. I was using '%+s%n%+b' with extra colour formatting as a workaround for some time now.

> Ciao,
> Johannes
-- 
Best regards.
Ilya Tumaykin.
Previous: Johannes SchindelinNext: Johannes Schindelin
Message 4 of 7 in “Bug: "git log --format='format:%+s%+b'" doesn't insert newline before body”
  1. Ilya TumaykinJul 24, 2016
  2. Beat BolliJul 25, 2016
  3. Johannes SchindelinJul 25, 2016
  4. Ilya TumaykinJul 25, 2016
  5. Johannes SchindelinJul 25, 2016
  6. Ilya TumaykinJul 25, 2016
  7. Jakub NarębskiJul 25, 2016

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.