git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / 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

  List information: http://vger.kernel.org/majordomo-info.html

* 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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).