fmt-merge-msg: add '--(no-)log' options and 'merge.log' config variable

These are new synonyms to the '--(no-)summary' option and the
'merge.summary' config variable, but are consistent with the soon to be
added 'merge --(no-)log' options.  The 'merge.summary' config variable and
'--(no-)summary' options are still accepted, but are advertised to be
removed in the future.

'merge.log' takes precedence over 'merge.summary' if they are both set
inconsistently.

Update documentation and tests accordingly.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
SZEDER Gábor 2008-04-06 03:23:45 +02:00 committed by Junio C Hamano
parent 3e6c0a3fe3
commit 6cd9cfefc5
4 changed files with 75 additions and 13 deletions

View File

@ -9,8 +9,8 @@ git-fmt-merge-msg - Produce a merge commit message
SYNOPSIS SYNOPSIS
-------- --------
[verse] [verse]
git-fmt-merge-msg [--summary | --no-summary] <$GIT_DIR/FETCH_HEAD git-fmt-merge-msg [--log | --no-log] <$GIT_DIR/FETCH_HEAD
git-fmt-merge-msg [--summary | --no-summary] -F <file> git-fmt-merge-msg [--log | --no-log] -F <file>
DESCRIPTION DESCRIPTION
----------- -----------
@ -24,15 +24,19 @@ automatically invoking `git-merge`.
OPTIONS OPTIONS
------- -------
--summary:: --log::
In addition to branch names, populate the log message with In addition to branch names, populate the log message with
one-line descriptions from the actual commits that are being one-line descriptions from the actual commits that are being
merged. merged.
--no-summary:: --no-log::
Do not list one-line descriptions from the actual commits being Do not list one-line descriptions from the actual commits being
merged. merged.
--summary,--no-summary::
Synonyms to --log and --no-log; these are deprecated and will be
removed in the future.
--file <file>, -F <file>:: --file <file>, -F <file>::
Take the list of merged objects from <file> instead of Take the list of merged objects from <file> instead of
stdin. stdin.
@ -40,10 +44,14 @@ OPTIONS
CONFIGURATION CONFIGURATION
------------- -------------
merge.summary:: merge.log::
Whether to include summaries of merged commits in newly Whether to include summaries of merged commits in newly
merge commit messages. False by default. merge commit messages. False by default.
merge.summary::
Synonym to `merge.log`; this is deprecated and will be removed in
the future.
SEE ALSO SEE ALSO
-------- --------
linkgit:git-merge[1] linkgit:git-merge[1]

View File

@ -2,7 +2,7 @@ merge.stat::
Whether to print the diffstat berween ORIG_HEAD and merge result Whether to print the diffstat berween ORIG_HEAD and merge result
at the end of the merge. True by default. at the end of the merge. True by default.
merge.summary:: merge.log::
Whether to include summaries of merged commits in newly created Whether to include summaries of merged commits in newly created
merge commit messages. False by default. merge commit messages. False by default.

View File

@ -6,13 +6,18 @@
#include "tag.h" #include "tag.h"
static const char *fmt_merge_msg_usage = static const char *fmt_merge_msg_usage =
"git-fmt-merge-msg [--summary] [--no-summary] [--file <file>]"; "git-fmt-merge-msg [--log] [--no-log] [--file <file>]";
static int merge_summary; static int merge_summary;
static int fmt_merge_msg_config(const char *key, const char *value) static int fmt_merge_msg_config(const char *key, const char *value)
{ {
if (!strcmp("merge.summary", key)) static int found_merge_log = 0;
if (!strcmp("merge.log", key)) {
found_merge_log = 1;
merge_summary = git_config_bool(key, value);
}
if (!found_merge_log && !strcmp("merge.summary", key))
merge_summary = git_config_bool(key, value); merge_summary = git_config_bool(key, value);
return 0; return 0;
} }
@ -250,9 +255,10 @@ int cmd_fmt_merge_msg(int argc, const char **argv, const char *prefix)
git_config(fmt_merge_msg_config); git_config(fmt_merge_msg_config);
while (argc > 1) { while (argc > 1) {
if (!strcmp(argv[1], "--summary")) if (!strcmp(argv[1], "--log") || !strcmp(argv[1], "--summary"))
merge_summary = 1; merge_summary = 1;
else if (!strcmp(argv[1], "--no-summary")) else if (!strcmp(argv[1], "--no-log")
|| !strcmp(argv[1], "--no-summary"))
merge_summary = 0; merge_summary = 0;
else if (!strcmp(argv[1], "-F") || !strcmp(argv[1], "--file")) { else if (!strcmp(argv[1], "-F") || !strcmp(argv[1], "--file")) {
if (argc < 3) if (argc < 3)

View File

@ -106,8 +106,24 @@ Merge branch 'left'
Common #1 Common #1
EOF EOF
test_expect_success 'merge-msg test #3' ' test_expect_success 'merge-msg test #3-1' '
git config --unset-all merge.log
git config --unset-all merge.summary
git config merge.log true &&
git checkout master &&
setdate &&
git fetch . left &&
git fmt-merge-msg <.git/FETCH_HEAD >actual &&
git diff actual expected
'
test_expect_success 'merge-msg test #3-2' '
git config --unset-all merge.log
git config --unset-all merge.summary
git config merge.summary true && git config merge.summary true &&
git checkout master && git checkout master &&
@ -136,8 +152,24 @@ Merge branches 'left' and 'right'
Common #1 Common #1
EOF EOF
test_expect_success 'merge-msg test #4' ' test_expect_success 'merge-msg test #4-1' '
git config --unset-all merge.log
git config --unset-all merge.summary
git config merge.log true &&
git checkout master &&
setdate &&
git fetch . left right &&
git fmt-merge-msg <.git/FETCH_HEAD >actual &&
git diff actual expected
'
test_expect_success 'merge-msg test #4-2' '
git config --unset-all merge.log
git config --unset-all merge.summary
git config merge.summary true && git config merge.summary true &&
git checkout master && git checkout master &&
@ -148,8 +180,24 @@ test_expect_success 'merge-msg test #4' '
git diff actual expected git diff actual expected
' '
test_expect_success 'merge-msg test #5' ' test_expect_success 'merge-msg test #5-1' '
git config --unset-all merge.log
git config --unset-all merge.summary
git config merge.log yes &&
git checkout master &&
setdate &&
git fetch . left right &&
git fmt-merge-msg <.git/FETCH_HEAD >actual &&
git diff actual expected
'
test_expect_success 'merge-msg test #5-2' '
git config --unset-all merge.log
git config --unset-all merge.summary
git config merge.summary yes && git config merge.summary yes &&
git checkout master && git checkout master &&