Re: [PATCH] log-tree: use custom line terminator in line termination mode
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:53:42
Jeff King [off-list ref] writes:
On Mon, Apr 30, 2012 at 12:36:07PM -0700, Junio C Hamano wrote:quoted
Jan Krüger [off-list ref] writes:quoted
When using a custom format in line termination mode (as opposed to line separation mode), the configured line terminator is not used, so things like "git log --pretty=tformat:%H -z" do not work properly. Make it use the line terminator the user ordered. Signed-off-by: Jan Krüger <redacted> --- log-tree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)diff --git a/log-tree.c b/log-tree.c index 34c49e7..44f0268 100644 --- a/log-tree.c +++ b/log-tree.c@@ -682,7 +682,7 @@ void show_log(struct rev_info *opt) if (opt->use_terminator) { if (!opt->missing_newline) graph_show_padding(opt->graph); - putchar('\n'); + putchar(opt->diffopt.line_termination); } strbuf_release(&msgbuf);Looks sensible. Perhaps we would want to add a test?Hmm. This came up before, and the issue is (or can be) slightly more complex: http://thread.gmane.org/gmane.comp.version-control.git/122478/focus=122568
Yeah, the test given completely forgets about "log -p" case, as you said
in the above:
But we can't just modify that to use the specified line terminator,
because sometimes it is acting as a separator between commit message and
diff, and sometimes it is acting as the terminator of the whole record.
So the patch is not quite right for the "log -p -z" (or "log --stat -z")
case.
The correct output would have NUL after each commit, so "-z --format=%s"
would have a single-liner subject with the line-terminating LF replaced
with NUL, and "-p/--stat -z --format=%s" would have a single-liner subject
with its line-terminating LF, followed by the diff/diffstat in which the
terminating LF of the last line is replaced with NUL, but to be consistent
with what "-p/--stat -z --pretty=format:%s" does, I think it is OK to
append NUL to the diff/diffstat part instead of replacing its last LF with
NUL.