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

Re: git-log --format missing trailing newline character

From
ACAlejandro Colomar <alx@kernel.org>
Date
Dec 23, 2024, 20:49 UTC
Message-ID
<5aib7c6x5m6e4muutjuoqp3f4lvpeh3hz5qkwpayi2usm7b6yi@af2oucx5j4w5>
In-Reply-To
<d813a3dd-68c2-4cbe-92a0-cfd1ece77e9b@app.fastmail.com>
Hi Kristoffer,
On Mon, Dec 23, 2024 at 09:36:48PM GMT, Kristoffer Haugsbakk wrote:
Show 21 quoted lines
> On Mon, Dec 23, 2024, at 21:28, Alejandro Colomar wrote:
> > Hi!
> >
> > I'm having trouble scripting around git-log(1), due to a missing newline
> > character at the end of the file.
> >
> > 	$ git -v
> > 	git version 2.45.2
> > 	$ git log --format=format:'%H' HEAD^^^..HEAD | wc -l
> > 	2
> > 	$ git log --format=format:'%H' HEAD^^^..HEAD
> > 	2ff431ab1b46a25088fe40baf1faf35ea9fac722
> > 	e75e6c4504022ae52d877926e63c908d9572088a
> > 	178442837d39560a789a8044a8eb90fde3ad7cd7
> >
> > Would you mind fixing this bug?  POSIX requires that text files end in a
> > newline character, precisely for being able to use UNIX tools to process
> > output from arbitrary commands.
> 
> Is the format here simplified relative to your use case?  Or do you just
> want to process commits as one-hash-per-line?
I want to process commits as one-hash-per-line, yes.
The entire pipeline I have is this:
	git rev-list "$old..HEAD" \
	| sed 's,.*,https://www.alejandro-colomar.es/src/alx/linux/man-pages/man-pages.git/commit/?h=contrib\&id=&,';

which I run in <hooks/post-update> in my server for printing URIs to all of the newly pushed commits. I use that for easily pasting them to the confirmation email I write to contributors when I apply and push one of their patches.

>  I would use
> git-rev-list(1) instead in that case.

Hmmm, thanks! I knew there had to be some git-rev-something for this, but couldn't find it! :)

I had workarounded it by doing
	git log --oneline --abbrev=40 | cut -f1 -d' '
However, git-rev-list(1) is better, of course, so I'll use it.

Anyway, it feels awkward that git-log(1) skips the last newline whith --format=format. Should that be fixed?

Have a lovely night! Alex

> 
> -- 
> Kristoffer Haugsbakk
> 
-- 
<https://www.alejandro-colomar.es/>
Previous: Kristoffer HaugsbakkNext: Andreas Schwab
Message 3 of 7 in “git-log --format missing trailing newline character”
  1. Alejandro ColomarDec 23, 2024
  2. Kristoffer HaugsbakkDec 23, 2024
  3. Alejandro ColomarDec 23, 2024
  4. Andreas SchwabDec 23, 2024
  5. Alejandro ColomarDec 23, 2024
  6. Junio C HamanoDec 26, 2024
  7. Alejandro ColomarDec 26, 2024

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.