Thread (2 messages) flat view 2 messages, 2 authors, 2016-06-15

Re: [PATCH 2/4] log and rev-list: Fixed newline termination issues with --graph

From: Govind Salinas <hidden>
Date: 2016-06-15 22:44:27

Possibly related (same subject, not in this thread)

On Mon, Apr 7, 2008 at 7:11 PM, Junio C Hamano [off-list ref] wrote:
Junio C Hamano [off-list ref] writes:

 >  (2) Presence of %n in "--pretty=format:..." means a multi-line output and
 >      uses separator as before; lack of %n means it is a one-line format
 >      and uses terminator.

 After thinking about this a bit more, I think a slight variant of the
 above probably is the least intrusive both from code and semantics point
 of view, and would match end-user expectations pretty well.

 This attached patch introduces a single bit "use_terminator" in "struct
 rev_info", which is normally false (i.e. most formats use separator
 semantics) but by flipping it to true, you can ask for terminator
 semantics just like oneline format does.

 The function get_commit_format(), which is what parses "--pretty=" option,
 now takes a pointer to "struct rev_info" and updates its commit_format and
 use_terminator fields.  It used to return the value of type "enum
 cmit_fmt", but all the callers assigned it to rev->commit_format.

 There are only two cases the code turns use_terminator on.  Obviously, the
 traditional oneline format (--pretty=oneline) is one of them, and the new
 case is --pretty=format:... that does not end with "%n".

 When the custom format "--pretty=format:" is:

        "A: %an <%ae>%nC: %cn <%ce>%n"

 it represents a record with two lines (author and committer), and these
 are output with an extra LF in between, just like the regular --pretty
 without customization will get an extra separator.  The custom format

        "A: %an <%ae> C: %cn <%ce>"

 will give a one-line-per-commit output, each of which is terminated with
 LF.  And

        "A: %an <%ae>%nC: %cn <%ce>"

 will give two line per commit without extra separator.
Hi,

Shouldn't whatever option is used here respect line_terminator such
that it will use NULL bytes when -z is used?  Having watched this
discussion, it seems like you really want an option --whatever that
forces a record terminator between records and, I assume, at the end.
I have not seen anyone suggest it, perhaps I missed it.

-Govind
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help