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

Re: Possible BUG in 'git log -z' last commit is not '\0' terminated

From: Linus Torvalds <torvalds@linux-foundation.org>
Date: 2016-06-15 22:43:17


On Fri, 22 Jun 2007, Marco Costalba wrote:
It seems '-z' option is not honoured by the last revision printed that
is just '\n' terminated.
It's not a bug - it's by design.

What the -z option does is to replace the normal "\n" that delineates 
commits from each other with a "\0".

And we only put that delimeter in *between* commits, not *after* commits. 
The reason? It's prettier. Do a 

	git log -1

to get a single commit, and notice how we do *not* add an empty line at 
the end (or beginning), and compare that to

	git log -2

that shows two commits, and has an empty line in *between*.

Now, add the "-z" flag, and notice how that empty line is now replaced by 
a "\0" character instead.

So you should think of the "\0" as being a delimeter that goes between
commits, not something that "ends" the commit. It's not a "end of record" 
thing, it's a "between records" thing.

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