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

From: Jonathan Nieder <[email-masked]>
Date: Fri, 8 Nov 2013 17:00:48 -0800

Hi,

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
>  	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 commit that introduced --log-size says the following in its
change description:

	$ git log --grep=--log-size
	commit 9fa3465d6be83c08ed24762c82eb33cb005729f3
	Author: Marco Costalba <[email-masked]>
	Date:   Fri Jul 20 20:15:13 2007 +0200

	    Add --log-size to git log to print message size

	    With this option git-log prints log message size
	    just before the corresponding message.

	    Porcelain tools could use this to speedup parsing
	    of git-log output.

	    Note that size refers to log message only. If also
	    patch content is shown its size is not included.

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.

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?

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?

Thanks and hope that helps,
Jonathan