threads / discuss / 55185

noeol when redirect git log output to a file

Subject: noeol when redirect git log output to a file

## tl;dr

2 messages between Feb 22, 2021 and Feb 22, 2021.

replies: 1people: 2as markdown or json

Wang Yugui· Feb 22, 2021, 15:14 UTC · lore
Hi,
noeol when redirect git log output to a file.

[root@T640 ~]# git log '--pretty=format:%h: %an: %s' -- hw/ >a.txt [root@T640 ~]# cat a.txt c2accaa: wangyugui: 757bec2: wangyugui: cefb5d4: wangyugui: 2fc0dbe: wangyugui: 6cfe6cf: wangyugui: e8a94b1: wangyugui: ba54c6a: wangyugui: 7de214e: wangyugui: 8f2588a: wangyugui: 5834825: wangyugui: cd30711: wangyugui: 8807c7d: wangyugui: edd4e92: wangyugui: 0c6f3dd: wangyugui: 38964f4: wangyugui: 4fd21e8: wangyugui: 52fa7b0: wangyugui: 93f5ddb: wangyugui: 47c7aa4: wangyugui: ab23c1f: wangyugui: OK 8002e69: wangyugui: da8a6d5: wangyugui: ed2f4e0: wangyugui: baseline[root@T640 ~]#

but without redirect, it seems OK. [root@T640 ~]# git log '--pretty=format:%h: %an: %s' -- hw/ c2accaa: wangyugui: 757bec2: wangyugui: cefb5d4: wangyugui: 2fc0dbe: wangyugui: 6cfe6cf: wangyugui: e8a94b1: wangyugui: ba54c6a: wangyugui: 7de214e: wangyugui: 8f2588a: wangyugui: 5834825: wangyugui: cd30711: wangyugui: 8807c7d: wangyugui: edd4e92: wangyugui: 0c6f3dd: wangyugui: 38964f4: wangyugui: 4fd21e8: wangyugui: 52fa7b0: wangyugui: 93f5ddb: wangyugui: 47c7aa4: wangyugui: ab23c1f: wangyugui: OK 8002e69: wangyugui: da8a6d5: wangyugui: ed2f4e0: wangyugui: baseline [root@T640 ~]#

[System Info] git version: git version 2.30.1 cpu: x86_64 no commit associated with this build sizeof-long: 8 sizeof-size_t: 8 shell-path: /bin/sh uname: Linux 5.10.17-3.el7.x86_64 #1 SMP Mon Feb 22 10:43:13 CST 2021 x86_64 compiler info: gnuc: 4.8 libc info: glibc: 2.17 $SHELL (typically, interactive shell): /bin/bash

[Enabled Hooks] None

Best Regards 王玉贵 2021/02/22

-------------------------------------- 北京京垓科技有限公司 王玉贵 wangyugui@e16-tech.com 电话:+86-136-71123776

Junio C Hamano· Feb 22, 2021, 17:20 UTC · re: Wang Yugui · lore

Re: noeol when redirect git log output to a file

Wang Yugui <wangyugui@e16-tech.com> writes:
> [root@T640 ~]# git log '--pretty=format:%h: %an: %s' -- hw/ >a.txt
This is an expected behaviour.

Notice that the format string given above does not end in LF by itself (its final placeholder is the subject string without LF at the end). LF you'd see in the output all come from the "log" machinery and not from the format string. When the machinery adds LFs, there are "separator" and "terminator" behaviour, the former of which adds a separating LF between each item, while the latter adds a terminating LF after each item.

"--pretty=format" is defined to use a separator semantics that is suited to show multi-line items, each of which ends in LF on its own (think of --pretty=format:"by %an%n%b"). Using terminator behaviour you'd get an useless extra LF at the end for such a format, and separator behaviour lets you avoid it.

"git log --help" and find "tformat", to learn more. --format=<fmt>, instead of --pretty=format:<fmt>, may also help.

← back to recent threads