From 6cd9cfefc505ed5ab5ff435ff9ef338ac8721225 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?SZEDER=20G=C3=A1bor?= <szeder@ira.uka.de>
Date: Sun, 6 Apr 2008 03:23:45 +0200
Subject: fmt-merge-msg: add '--(no-)log' options and 'merge.log' config
 variable
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

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>
---
 Documentation/git-fmt-merge-msg.txt | 18 +++++++++----
 Documentation/merge-config.txt      |  2 +-
 builtin-fmt-merge-msg.c             | 14 +++++++---
 t/t6200-fmt-merge-msg.sh            | 54 ++++++++++++++++++++++++++++++++++---
 4 files changed, 75 insertions(+), 13 deletions(-)

diff --git a/Documentation/git-fmt-merge-msg.txt b/Documentation/git-fmt-merge-msg.txt
index 8615ae353..457cf4256 100644
--- a/Documentation/git-fmt-merge-msg.txt
+++ b/Documentation/git-fmt-merge-msg.txt
@@ -9,8 +9,8 @@ git-fmt-merge-msg - Produce a merge commit message
 SYNOPSIS
 --------
 [verse]
-git-fmt-merge-msg [--summary | --no-summary] <$GIT_DIR/FETCH_HEAD
-git-fmt-merge-msg [--summary | --no-summary] -F <file>
+git-fmt-merge-msg [--log | --no-log] <$GIT_DIR/FETCH_HEAD
+git-fmt-merge-msg [--log | --no-log] -F <file>
 
 DESCRIPTION
 -----------
@@ -24,15 +24,19 @@ automatically invoking `git-merge`.
 OPTIONS
 -------
 
---summary::
+--log::
 	In addition to branch names, populate the log message with
 	one-line descriptions from the actual commits that are being
 	merged.
 
---no-summary::
+--no-log::
 	Do not list one-line descriptions from the actual commits being
 	merged.
 
+--summary,--no-summary::
+	Synonyms to --log and --no-log; these are deprecated and will be
+	removed in the future.
+
 --file <file>, -F <file>::
 	Take the list of merged objects from <file> instead of
 	stdin.
@@ -40,10 +44,14 @@ OPTIONS
 CONFIGURATION
 -------------
 
-merge.summary::
+merge.log::
 	Whether to include summaries of merged commits in newly
 	merge commit messages. False by default.
 
+merge.summary::
+	Synonym to `merge.log`; this is deprecated and will be removed in
+	the future.
+
 SEE ALSO
 --------
 linkgit:git-merge[1]
diff --git a/Documentation/merge-config.txt b/Documentation/merge-config.txt
index 6d0a7971c..9719311b4 100644
--- a/Documentation/merge-config.txt
+++ b/Documentation/merge-config.txt
@@ -2,7 +2,7 @@ merge.stat::
 	Whether to print the diffstat berween ORIG_HEAD and merge result
 	at the end of the merge.  True by default.
 
-merge.summary::
+merge.log::
 	Whether to include summaries of merged commits in newly created
 	merge commit messages. False by default.
 
diff --git a/builtin-fmt-merge-msg.c b/builtin-fmt-merge-msg.c
index ebb3f37cf..d49f5454e 100644
--- a/builtin-fmt-merge-msg.c
+++ b/builtin-fmt-merge-msg.c
@@ -6,13 +6,18 @@
 #include "tag.h"
 
 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 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);
 	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);
 
 	while (argc > 1) {
-		if (!strcmp(argv[1], "--summary"))
+		if (!strcmp(argv[1], "--log") || !strcmp(argv[1], "--summary"))
 			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;
 		else if (!strcmp(argv[1], "-F") || !strcmp(argv[1], "--file")) {
 			if (argc < 3)
diff --git a/t/t6200-fmt-merge-msg.sh b/t/t6200-fmt-merge-msg.sh
index 526d7d1c4..bd4e49bf1 100755
--- a/t/t6200-fmt-merge-msg.sh
+++ b/t/t6200-fmt-merge-msg.sh
@@ -106,8 +106,24 @@ Merge branch 'left'
   Common #1
 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 checkout master &&
@@ -136,8 +152,24 @@ Merge branches 'left' and 'right'
   Common #1
 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 checkout master &&
@@ -148,8 +180,24 @@ test_expect_success 'merge-msg test #4' '
 	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 checkout master &&
-- 
cgit v1.2.1