Subject: Re: [PATCH 1/4] Minor grammatical fixes in "git log" man page

From: Junio C Hamano <[email-masked]>
Date: Mon, 11 Nov 2013 09:59:28 -0800

Jonathan Nieder <[email-masked]> writes:

> Jason St. John wrote:
>
>> git-log.txt: grammatical fixes under --log-size option
>
> Thanks.
>
> [...]
>> --- a/Documentation/git-log.txt
>> +++ b/Documentation/git-log.txt
>> @@ -56,10 +56,10 @@ Note that this affects all diff-based output types, e.g. those
>>  produced by --stat etc.
>> 
>>  --log-size::
>> -	Before the log message print out its size in bytes. Intended
>> +	Before the log message, print out its size in bytes. Intended

Either reads well at least for me.

>>  	mainly for porcelain tools consumption. If Git is unable to
>> -	produce a valid value size is set to zero.
>> -	Note that only message is considered, if also a diff is shown
>> +	produce a valid value size, this is set to zero.
>> +	Note that only message is considered. Also, if a diff is shown,
>>  	its size is not included.
>
> I have no idea what this option does, before or after the change.

The original is probably more accurate, if harder to read.  The
byte-size of the message part of log output is reported, so that
tools like QGit can slurp that many bytes and then treat the
remainder as a patch (if -p, --stat, etc. were given).

> Perhaps some of the above could make it into a clearer description?
> E.g.,
>
> 	--log-size::
> 		Include a line "log size <number>" in the output for each
> 		commit, where <number> is the length of that commit's
> 		message in bytes.  Intended to speed up tools that
> 		read log messages from 'git log' output by allowing them
> 		to allocate space in advance.

Yeah, that reads better. We do not have to single out "if also a
diff is shown", as there are other kinds of output that can follow
the message proper, and they are not counted.

> The commit introducing --log-size also says:
>
> 	    In case it is not possible to know the size upfront
> 	    size value is set to zero.
>
> Is this still true?  When is it not possible to know the size up
> front?

I have no idea ;-)  Perhaps Marco can enlighten us?

> The implementation of --log-size is
>
> 	if (opt->show_log_size) {
> 		printf("log size %i\n", (int)msgbuf.len);
> 		graph_show_oneline(opt->graph);
> 	}
>
> What happens if the commit message is long enough to overflow a 32-bit
> integer?  Is that impossible for other reasons?  If it is possible,
> (not about this patch) should this be using a 64-bit integer to print
> instead?

A nice low-hanging fruit ;-)

Thanks