Re: Bug: "git log --format='format:%+s%+b'" doesn't insert newline before body
- From
- Ilya 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.