All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Nieder <jrnieder@gmail.com>
To: Ramkumar Ramachandra <artagnon@gmail.com>
Cc: Git Mailing List <git@vger.kernel.org>,
	Johannes Sixt <j.sixt@viscovery.net>,
	Yaroslav Halchenko <debian@onerussian.com>,
	Junio C Hamano <gitster@pobox.com>
Subject: Re: [PATCH v5 2/5] merge: Make '--log' an integer option for number of shortlog entries
Date: Mon, 23 Aug 2010 17:25:42 -0500	[thread overview]
Message-ID: <20100823222542.GD1308@burratino> (raw)
In-Reply-To: <1282494398-20542-3-git-send-email-artagnon@gmail.com>

Ramkumar Ramachandra wrote:

>  Documentation/git-fmt-merge-msg.txt |   10 +++++-----
>  Documentation/merge-options.txt     |    6 +++---
>  builtin/fmt-merge-msg.c             |   25 ++++++++++++++-----------
>  builtin/merge.c                     |   18 ++++++++++--------
>  4 files changed, 32 insertions(+), 27 deletions(-)

Is this on top of "next"?  I had trouble applying it on top of the
update-contrib-example-merge topic.

> --- a/Documentation/git-fmt-merge-msg.txt
> +++ b/Documentation/git-fmt-merge-msg.txt
> @@ -24,10 +24,10 @@ automatically invoking 'git merge'.
>  OPTIONS
>  -------
>  
> ---log::
> +--log[=<n>]::
>  	In addition to branch names, populate the log message with
> -	one-line descriptions from the actual commits that are being
> -	merged.
> +	one-line descriptions from at most <n> actual commits that are
> +	being merged. If omitted, <n> defaults to 20.

The description feels a bit awkward.  Maybe:

	In addition to branch names, populate the log message with
	one-line descriptions from the actual commits that are being
	merged.  At most <n> commits from each merge parent will be
	used (20 if <n> is omitted).  This overrides the `merge.log`
	configuration variable.

> +++ b/Documentation/merge-options.txt
> @@ -16,11 +16,11 @@ inspect and further tweak the merge result before committing.
>  With --no-ff Generate a merge commit even if the merge
>  resolved as a fast-forward.
>  
> ---log::
> +--log[=<n>]::
>  --no-log::
>  	In addition to branch names, populate the log message with
> -	one-line descriptions from the actual commits that are being
> -	merged.
> +	one-line descriptions from <n> actual commits that are being
> +	merged. See also linkgit:git-fmt-merge-msg[1].

Maybe s/<n>/at most <n>/.

> --- a/builtin/fmt-merge-msg.c
> +++ b/builtin/fmt-merge-msg.c
> @@ -7,21 +7,21 @@
>  #include "string-list.h"
>  
>  static const char * const fmt_merge_msg_usage[] = {
> -	"git fmt-merge-msg [-m <message>] [--log|--no-log] [--file <file>]",
> +	"git fmt-merge-msg [-m <message>] [--log[=<n>]|--no-log] [--file <file>]",
>  	NULL
>  };
>  
> -static int merge_summary;
> +static int shortlog_len;

Before: merge_summary is 1 for --log, 0 for --no-log.
After: shortlog_len is 20 for --log, 0 for --no-log, right?

>  static int fmt_merge_msg_config(const char *key, const char *value, void *cb)
>  {
>  	static int found_merge_log = 0;
>  	if (!strcmp("merge.log", key)) {
>  		found_merge_log = 1;
> -		merge_summary = git_config_bool(key, value);
> +		shortlog_len = git_config_bool(key, value);
>  	}
>  	if (!found_merge_log && !strcmp("merge.summary", key))
> -		merge_summary = git_config_bool(key, value);
> +		shortlog_len = git_config_bool(key, value);

So should this say something like

	shortlog_len = git_config_bool(key, value) ?
				DEFAULT_MERGE_LOG_LEN : 0;

?

> @@ -318,10 +318,12 @@ int cmd_fmt_merge_msg(int argc, const char **argv, const char *prefix)
>  	const char *inpath = NULL;
>  	const char *message = NULL;
>  	struct option options[] = {
> -		OPT_BOOLEAN(0, "log",     &merge_summary, "populate log with the shortlog"),
> -		{ OPTION_BOOLEAN, 0, "summary", &merge_summary, NULL,
> -		  "alias for --log (deprecated)",
> -		  PARSE_OPT_NOARG | PARSE_OPT_HIDDEN },
> +		{ OPTION_INTEGER, 0, "log", &shortlog_len, "n",
> +		  "populate log with <n> entries from shortlog",
> +		  PARSE_OPT_OPTARG, NULL, 20 },
> +		{ OPTION_INTEGER, 0, "summary", &shortlog_len, "n",
> +                  "alias for --log (deprecated)",
> +		  PARSE_OPT_OPTARG | PARSE_OPT_HIDDEN, NULL, 20 },

Whitespace damage.

> +++ b/builtin/merge.c
> @@ -42,7 +42,7 @@ static const char * const builtin_merge_usage[] = {
>  	NULL
>  };
>  
> -static int show_diffstat = 1, option_log, squash;
> +static int show_diffstat = 1, shortlog_len, squash;
>  static int option_commit = 1, allow_fast_forward = 1;
>  static int fast_forward_only;
>  static int allow_trivial = 1, have_message;
> @@ -177,8 +177,9 @@ static struct option builtin_merge_options[] = {
>  	OPT_BOOLEAN(0, "stat", &show_diffstat,
>  		"show a diffstat at the end of the merge"),
>  	OPT_BOOLEAN(0, "summary", &show_diffstat, "(synonym to --stat)"),
> -	OPT_BOOLEAN(0, "log", &option_log,
> -		"add list of one-line log to merge commit message"),
> +	{ OPTION_INTEGER, 0, "log", &shortlog_len, "n",
> +	  "populate log with <n> entries from shortlog",

The emphasis seems wrong: the important thing is still that --log
uses a shortlog, not the number of entries.  Maybe something like

	  "populate log with (at most <n>) entries from shortlog"

but that might make "git merge -h" use more than 80 columns...

>  	OPT_BOOLEAN(0, "commit", &option_commit,
> @@ -505,7 +506,7 @@ static int git_merge_config(const char *k, const char *v, void *cb)
>  	else if (!strcmp(k, "pull.octopus"))
>  		return git_config_string(&pull_octopus, k, v);
>  	else if (!strcmp(k, "merge.log") || !strcmp(k, "merge.summary"))
> -		option_log = git_config_bool(k, v);
> +		shortlog_len = git_config_bool(k, v);

As before (is this missing a " ? DEFAULT_MERGE_LOG_LEN : 0"?).

Except as noted above,

Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>

  reply	other threads:[~2010-08-23 22:27 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-22 16:26 [PATCH v5 0/5] merge --log configurability Ramkumar Ramachandra
2010-08-22 16:26 ` [PATCH v5 1/5] fmt_merge_msg: Change fmt_merge_msg API to accept shortlog_len Ramkumar Ramachandra
2010-08-23 22:00   ` Jonathan Nieder
2010-08-24 17:16     ` Junio C Hamano
2010-08-25  2:44       ` [PATCH rr/fmt-merge-msg] merge, fmt_merge_msg --log: default value is DEFAULT_MERGE_LOG_LEN Jonathan Nieder
2010-08-22 16:26 ` [PATCH v5 2/5] merge: Make '--log' an integer option for number of shortlog entries Ramkumar Ramachandra
2010-08-23 22:25   ` Jonathan Nieder [this message]
2010-08-25  4:50     ` Ramkumar Ramachandra
2010-08-22 16:26 ` [PATCH v5 3/5] merge: Make 'merge.log' an integer or boolean option Ramkumar Ramachandra
2010-08-24 19:01   ` Junio C Hamano
2010-08-25  3:52     ` Ramkumar Ramachandra
2010-08-22 16:26 ` [PATCH v5 4/5] fmt-merge-msg: Remove deprecated '--summary' option Ramkumar Ramachandra
2010-08-22 16:26 ` [PATCH v5 5/5] parse-options: clarify PARSE_OPT_NOARG description Ramkumar Ramachandra

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100823222542.GD1308@burratino \
    --to=jrnieder@gmail.com \
    --cc=artagnon@gmail.com \
    --cc=debian@onerussian.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=j.sixt@viscovery.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.