git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] merge, pull: introduce '--diffstat' option

From
SZEDER Gábor <szeder@ira.uka.de>
Date
Apr 5, 2008, 14:48 UTC
Message-ID
<1207406935-22144-1-git-send-email-szeder@ira.uka.de>
In-Reply-To
<20080403103056.GD6673@coredump.intra.peff.net>

At present, the 'merge --summary' command line option and 'merge.diffstat' config variable are controlling the same thing: whether to show a diffstat at the end of the merge or not. This is inconsistent and confusing.

This patch adds the '--diffstat' and '--no-diffstat' options to 'merge' and 'pull', making the name of the command line option and the config variable consistent. Documentation, tests, and bash completion are also updated accordingly.

The '--summary' and '--no-summary' options are still accepted, but are not advertised.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
---
But there is still a conflict between the 'merge.summary' config
variable and the now not advertised '--summary' option, that should be
resolved.
 Documentation/git-merge.txt            |    2 +-
 Documentation/merge-options.txt        |    4 ++--
 contrib/completion/git-completion.bash |    2 +-
 git-merge.sh                           |    8 ++++----
 git-pull.sh                            |   16 +++++++---------
 t/t7600-merge.sh                       |    6 +++---
 6 files changed, 18 insertions(+), 20 deletions(-)
diff --git a/Documentation/git-merge.txt b/Documentation/git-merge.txt
index c136b10..d260ab1 100644
--- a/Documentation/git-merge.txt
+++ b/Documentation/git-merge.txt
@@ -9,7 +9,7 @@ git-merge - Join two or more development histories together
 SYNOPSIS
 --------
 [verse]
-'git-merge' [-n] [--summary] [--no-commit] [--squash] [-s <strategy>]...
+'git-merge' [-n] [--diffstat] [--no-commit] [--squash] [-s <strategy>]...
 	[-m <msg>] <remote> <remote>...
 'git-merge' <msg> HEAD <remote>...
 
diff --git a/Documentation/merge-options.txt b/Documentation/merge-options.txt
index 9f1fc82..edd13a5 100644
--- a/Documentation/merge-options.txt
+++ b/Documentation/merge-options.txt
@@ -1,8 +1,8 @@
---summary::
+--diffstat::
 	Show a diffstat at the end of the merge. The diffstat is also
 	controlled by the configuration option merge.diffstat.
 
--n, \--no-summary::
+-n, \--no-diffstat::
 	Do not show diffstat at the end of the merge.
 
 --no-commit::
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 791e30f..2e6cad7 100755
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -776,7 +776,7 @@ _git_merge ()
 		;;
 	--*)
 		__gitcomp "
-			--no-commit --no-summary --squash --strategy
+			--no-commit --no-diffstat --squash --strategy
 			"
 		return
 	esac
diff --git a/git-merge.sh b/git-merge.sh
index 7dbbb1d..b51eef8 100755
--- a/git-merge.sh
+++ b/git-merge.sh
@@ -8,8 +8,8 @@ OPTIONS_SPEC="\
 git-merge [options] <remote>...
 git-merge [options] <msg> HEAD <remote>
 --
-summary              show a diffstat at the end of the merge
-n,no-summary         don't show a diffstat at the end of the merge
+diffstat             show a diffstat at the end of the merge
+n,no-diffstat        don't show a diffstat at the end of the merge
 squash               create a single commit instead of doing a merge
 commit               perform a commit if the merge sucesses (default)
 ff                   allow fast forward (default)
@@ -148,9 +148,9 @@ merge_name () {
 parse_config () {
 	while test $# != 0; do
 		case "$1" in
-		-n|--no-summary)
+		-n|--no-diffstat|--no-summary)
 			show_diffstat=false ;;
-		--summary)
+		--diffstat|--summary)
 			show_diffstat=t ;;
 		--squash)
 			test "$allow_fast_forward" = t ||
diff --git a/git-pull.sh b/git-pull.sh
index 3ce32b5..20a2024 100755
--- a/git-pull.sh
+++ b/git-pull.sh
@@ -4,7 +4,7 @@
 #
 # Fetch one or more remote refs and merge it/them into the current HEAD.
 
-USAGE='[-n | --no-summary] [--[no-]commit] [--[no-]squash] [--[no-]ff] [-s strategy]... [<fetch-options>] <repo> <head>...'
+USAGE='[-n | --no-diffstat] [--[no-]commit] [--[no-]squash] [--[no-]ff] [-s strategy]... [<fetch-options>] <repo> <head>...'
 LONG_USAGE='Fetch one or more remote refs and merge it/them into the current HEAD.'
 SUBDIRECTORY_OK=Yes
 OPTIONS_SPEC=
@@ -16,19 +16,17 @@ cd_to_toplevel
 test -z "$(git ls-files -u)" ||
 	die "You are in the middle of a conflicted merge."
 
-strategy_args= no_summary= no_commit= squash= no_ff=
+strategy_args= no_diffstat= no_commit= squash= no_ff=
 curr_branch=$(git symbolic-ref -q HEAD)
 curr_branch_short=$(echo "$curr_branch" | sed "s|refs/heads/||")
 rebase=$(git config --bool branch.$curr_branch_short.rebase)
 while :
 do
 	case "$1" in
-	-n|--n|--no|--no-|--no-s|--no-su|--no-sum|--no-summ|\
-		--no-summa|--no-summar|--no-summary)
-		no_summary=-n ;;
-	--summary)
-		no_summary=$1
-		;;
+	-n|--no-diffstat|--no-summary)
+		no_diffstat=-n ;;
+	--diffstat|--summary)
+		no_diffstat=$1 ;;
 	--no-c|--no-co|--no-com|--no-comm|--no-commi|--no-commit)
 		no_commit=--no-commit ;;
 	--c|--co|--com|--comm|--commi|--commit)
@@ -176,5 +174,5 @@ merge_name=$(git fmt-merge-msg <"$GIT_DIR/FETCH_HEAD") || exit
 test true = "$rebase" &&
 	exec git-rebase $strategy_args --onto $merge_head \
 	${oldremoteref:-$merge_head}
-exec git-merge $no_summary $no_commit $squash $no_ff $strategy_args \
+exec git-merge $no_diffstat $no_commit $squash $no_ff $strategy_args \
 	"$merge_name" HEAD $merge_head
diff --git a/t/t7600-merge.sh b/t/t7600-merge.sh
index 56869ac..bbbd580 100755
--- a/t/t7600-merge.sh
+++ b/t/t7600-merge.sh
@@ -368,7 +368,7 @@ test_expect_success 'override config option -n' '
 	git reset --hard c1 &&
 	git config branch.master.mergeoptions "-n" &&
 	test_tick &&
-	git merge --summary c2 >diffstat.txt &&
+	git merge --diffstat c2 >diffstat.txt &&
 	verify_merge file result.1-5 msg.1-5 &&
 	verify_parents $c1 $c2 &&
 	if ! grep "^ file |  *2 +-$" diffstat.txt
@@ -379,9 +379,9 @@ test_expect_success 'override config option -n' '
 
 test_debug 'gitk --all'
 
-test_expect_success 'override config option --summary' '
+test_expect_success 'override config option --diffstat' '
 	git reset --hard c1 &&
-	git config branch.master.mergeoptions "--summary" &&
+	git config branch.master.mergeoptions "--diffstat" &&
 	test_tick &&
 	git merge -n c2 >diffstat.txt &&
 	verify_merge file result.1-5 msg.1-5 &&
-- 
1.5.5.rc3.10.g79e34
Previous: SZEDER GáborNext: Teemu Likonen
Message 6 of 32 in “merge --summary vs. merge.summary”
  1. 0/2 merge --summary vs. merge.summarySZEDER Gábor, Apr 3, 2008
  2. 1/2 merge, pull: rename '--summary' option to '--diffstat'SZEDER Gábor, Apr 3, 2008
  3. 2/2 merge, pull: add option to put summary into the merge commit messageSZEDER Gábor, Apr 3, 2008
  4. Jeff KingApr 3, 2008
  5. SZEDER GáborApr 3, 2008
  6. merge, pull: introduce '--diffstat' optionSZEDER Gábor, Apr 5, 2008
  7. Teemu LikonenApr 5, 2008
  8. Junio C HamanoApr 5, 2008
  9. 0/6 merge summary and diffstat options cleanupSZEDER Gábor, Apr 6, 2008
  10. 1/6 doc: moved merge.* config variables into separate merge-config.txtSZEDER Gábor, Apr 6, 2008
  11. 2/6 merge, pull: introduce '--(no-)stat' optionSZEDER Gábor, Apr 6, 2008
  12. 3/6 add 'merge.stat' config variableSZEDER Gábor, Apr 6, 2008
  13. 4/6 fmt-merge-msg: add '--(no-)log' options and 'merge.log' config variableSZEDER Gábor, Apr 6, 2008
  14. 5/6 merge, pull: add '--(no-)log' command line optionSZEDER Gábor, Apr 6, 2008
  15. 6/6 merge: remove deprecated summary and diffstat options and config variablesSZEDER Gábor, Apr 6, 2008
  16. Junio C HamanoApr 6, 2008
  17. 00/12 merge summary and diffstat options cleanupSZEDER Gábor, Apr 16, 2008
  18. 01/12 doc: moved merge.* config variables into separate merge-config.txtSZEDER Gábor, Apr 16, 2008
  19. 02/12 merge, pull: introduce '--(no-)stat' optionsSZEDER Gábor, Apr 16, 2008
  20. 03/12 add 'merge.stat' config variableSZEDER Gábor, Apr 16, 2008
  21. 04/12 t6200-fmt-merge-msg: put expected messages into different filesSZEDER Gábor, Apr 16, 2008
  22. 05/12 fmt-merge-msg: add '--(no-)log' options and 'merge.log' config variableSZEDER Gábor, Apr 16, 2008
  23. 06/12 merge, pull: add '--(no-)log' command line optionSZEDER Gábor, Apr 16, 2008
  24. 07/12 merge, pull: mark '--(no-)summary' options as deprecatedSZEDER Gábor, Apr 16, 2008
  25. 08/12 merge, pull: mark the config variable 'merge.diffstat' as deprecatedSZEDER Gábor, Apr 16, 2008
  26. 09/12 fmt-merge-msg: mark summary-related option and config variable as deprecatedSZEDER Gábor, Apr 16, 2008
  27. 10/12 merge, pull: remove deprecated '--(no-)summary' optionsSZEDER Gábor, Apr 16, 2008
  28. 11/12 merge, pull: remove deprecated 'merge.diffstat' config variableSZEDER Gábor, Apr 16, 2008
  29. 12/12 fmt-merge-msg: remove deprecated summary-related options and config variableSZEDER Gábor, Apr 16, 2008
  30. Junio C HamanoApr 16, 2008
  31. Jeff KingApr 6, 2008
  32. Jakub NarebskiApr 6, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.