[PATCH v5 3/5] merge: Make 'merge.log' an integer or boolean option
From: Ramkumar Ramachandra <hidden>
Date: 2016-06-15 22:49:22
Subsystem:
documentation, the rest · Maintainers:
Jonathan Corbet, Linus Torvalds
Make 'merge.log' an integer or boolean option to set the number of shortlog entries to display in the merge commit. Note that it defaults to false, and that true means a default value of 20. Also update corresponding documentation. Signed-off-by: Ramkumar Ramachandra <redacted> Thanks-to: Jonathan Nieder [off-list ref] Thanks-to: Johannes Sixt [off-list ref] --- Documentation/git-fmt-merge-msg.txt | 8 +++++--- Documentation/merge-config.txt | 8 ++++++-- builtin/fmt-merge-msg.c | 11 +++++------ builtin/merge.c | 8 ++++++-- 4 files changed, 22 insertions(+), 13 deletions(-)
diff --git a/Documentation/git-fmt-merge-msg.txt b/Documentation/git-fmt-merge-msg.txt
index 14ac466..5954a53 100644
--- a/Documentation/git-fmt-merge-msg.txt
+++ b/Documentation/git-fmt-merge-msg.txt@@ -25,9 +25,11 @@ OPTIONS ------- --log[=<n>]:: - In addition to branch names, populate the log message with - one-line descriptions from at most <n> actual commits that are - being merged. If omitted, <n> defaults to 20. + Whether to include summaries of merged commits in newly + created merge commit messages. Optionally, an integer can be + used to specify how many merged commits to summarize (at + maxmium) in the merge message. Specifying "true" is + equivalent to specifying 20. Defaults to false. --no-log:: Do not list one-line descriptions from the actual commits being
diff --git a/Documentation/merge-config.txt b/Documentation/merge-config.txt
index b72f533..510c0ad 100644
--- a/Documentation/merge-config.txt
+++ b/Documentation/merge-config.txt@@ -7,8 +7,12 @@ merge.conflictstyle:: marker and the original text before the `=======` marker. merge.log:: - Whether to include summaries of merged commits in newly created - merge commit messages. False by default. + Whether to include summaries of merged commits in newly + created merge commit messages. Optionally, an integer can be + used to specify how many merged commits to summarize (at + maxmium) in the merge message. Specifying "true" is + equivalent to specifying 20. Defaults to false. See also + linkgit:git-fmt-merge-msg[1]. merge.renameLimit:: The number of files to consider when performing rename detection
diff --git a/builtin/fmt-merge-msg.c b/builtin/fmt-merge-msg.c
index 1c5da95..6a2c9c8 100644
--- a/builtin/fmt-merge-msg.c
+++ b/builtin/fmt-merge-msg.c@@ -15,13 +15,12 @@ static int shortlog_len; 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; - shortlog_len = git_config_bool(key, value); + if (!strcmp(key, "merge.log") || !strcmp(key, "merge.summary")) { + int is_bool; + shortlog_len = git_config_bool_or_int(key, value, &is_bool); + if (is_bool && shortlog_len) + shortlog_len = 20; } - if (!found_merge_log && !strcmp("merge.summary", key)) - shortlog_len = git_config_bool(key, value); return 0; }
diff --git a/builtin/merge.c b/builtin/merge.c
index 994b0c5..78d6c69 100644
--- a/builtin/merge.c
+++ b/builtin/merge.c@@ -505,8 +505,12 @@ static int git_merge_config(const char *k, const char *v, void *cb) return git_config_string(&pull_twohead, k, v); else if (!strcmp(k, "pull.octopus")) return git_config_string(&pull_octopus, k, v); - else if (!strcmp(k, "merge.log") || !strcmp(k, "merge.summary")) - shortlog_len = git_config_bool(k, v); + else if (!strcmp(k, "merge.log") || !strcmp(k, "merge.summary")) { + int is_bool; + shortlog_len = git_config_bool_or_int(k, v, &is_bool); + if (is_bool && shortlog_len) + shortlog_len = 20; + } else if (!strcmp(k, "merge.renormalize")) option_renormalize = git_config_bool(k, v); return git_diff_ui_config(k, v, cb);
--
1.7.2.2.409.gdbb11.dirty