Jeff King [off-list ref] writes:
On Thu, Mar 20, 2008 at 09:48:16PM -0700, Junio C Hamano wrote:
quoted
quoted
+ case 'z': /* null */
+ strbuf_addch(sb, '\0');
+ return 1;
}
/* these depend on the commit */
I do not like this at all. Why aren't we doing %XX (2 hexadecimal digits
for an octet)?
Because %ad is already taken? :)
%x* is still available, though, so maybe %x00?
Perhaps, but before I forget.
My much bigger niggle about the "--pretty=format:<>" code I have is that
the "log" machinery does not change the usual record "delimiter" to record
"terminator" when --pretty=format:<> is in effect.
The "log" family generally treats LF/NUL as record delimiter, not
terminator, and it is by a very good conscious design. When you are
looking at the output from "git log -2", you would want to have a
delimiting LF between the first commit and the second commit, but you do
not want an extra LF after the second commit.
However, when "--pretty=format:<>" is in effect, it is inconvenient that
the machinery inserts a LF between each record but not at the end.
$ git log -2 --pretty=format:%s
may look sane when the pager immediately returns the control to you, but
it is not really. To view it:
$ git log -2 --pretty=format:%s | cat
This would show that there is no LF after the final output, which is quite
bad.