Re: [PATCH v3 2/5] fmt-merge-msg: Make the number of log entries in commit message configurable
From: Jonathan Nieder <hidden>
Date: 2016-06-15 22:49:21
Ramkumar Ramachandra wrote:
quoted hunk ↗ jump to hunk
+++ b/builtin/fmt-merge-msg.c@@ -12,16 +12,23 @@ static const char * const fmt_merge_msg_usage[] = { }; static int merge_summary; +static int log_limit = 0; static int fmt_merge_msg_config(const char *key, const char *value, void *cb) { static int found_merge_log = 0; + int is_bool = 0; if (!strcmp("merge.log", key)) { found_merge_log = 1; - merge_summary = git_config_bool(key, value); + log_limit = git_config_bool_or_int(key, value, &is_bool); } if (!found_merge_log && !strcmp("merge.summary", key)) - merge_summary = git_config_bool(key, value); + log_limit = git_config_bool_or_int(key, value, &is_bool); + + if (is_bool && log_limit) + log_limit = 20; + merge_summary = log_limit ? 1 : 0;
Hmm, this seems to be trying to have it both ways. It would be simpler to either: static int merge_summary; static int log_limit = 20; providing independent internal "enabled" and "limit" knobs, so one could use, say, [merge] log = 2 log = false log = true with the result being be a log_limit of 2, or static int log_limit; where 0 means disabled, so in that example the result would be a log_limit of 20.
quoted hunk ↗ jump to hunk
@@ -140,7 +147,7 @@ static void print_joined(const char *singular, const char *plural, } static void shortlog(const char *name, unsigned char *sha1, - struct commit *head, struct rev_info *rev, int limit, + struct commit *head, struct rev_info *rev, struct strbuf *out)
A part of me wishes we would still pass the limit around (for no good reason), but you are probably right that it is easier to work with the global.
quoted hunk ↗ jump to hunk
@@ -257,7 +264,7 @@ static void do_fmt_merge_msg_title(struct strbuf *out, static int do_fmt_merge_msg(int merge_title, int merge_summary,
What happened to the merge_summary argument?