merge, pull: introduce '--(no-)stat' option
This option has the same effect as '--(no-)summary' (i.e. whether to show a diffsat at the end of the merge or not), and it is consistent with the '--stat' option of other git commands. Documentation, tests, and bash completion are updaed accordingly, and the old --summary option is marked as being deprected. Signed-off-by: SZEDER Gábor <szeder@ira.uka.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
f5a84c372f
commit
d8abe148be
@ -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] [--stat] [--no-commit] [--squash] [-s <strategy>]...
|
||||
[-m <msg>] <remote> <remote>...
|
||||
'git-merge' <msg> HEAD <remote>...
|
||||
|
||||
|
@ -1,10 +1,14 @@
|
||||
--summary::
|
||||
--stat::
|
||||
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-stat::
|
||||
Do not show diffstat at the end of the merge.
|
||||
|
||||
--summary, \--no-summary::
|
||||
Synonyms to --stat and --no-stat; these are deprecated and will be
|
||||
removed in the future.
|
||||
|
||||
--no-commit::
|
||||
Perform the merge but pretend the merge failed and do
|
||||
not autocommit, to give the user a chance to inspect and
|
||||
|
@ -779,7 +779,7 @@ _git_merge ()
|
||||
;;
|
||||
--*)
|
||||
__gitcomp "
|
||||
--no-commit --no-summary --squash --strategy
|
||||
--no-commit --no-stat --squash --strategy
|
||||
"
|
||||
return
|
||||
esac
|
||||
|
10
git-merge.sh
10
git-merge.sh
@ -8,8 +8,10 @@ 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
|
||||
stat show a diffstat at the end of the merge
|
||||
n,no-stat don't show a diffstat at the end of the merge
|
||||
summary (synonym to --stat)
|
||||
no-summary (synonym to --no-stat)
|
||||
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 +150,9 @@ merge_name () {
|
||||
parse_config () {
|
||||
while test $# != 0; do
|
||||
case "$1" in
|
||||
-n|--no-summary)
|
||||
-n|--no-stat|--no-summary)
|
||||
show_diffstat=false ;;
|
||||
--summary)
|
||||
--stat|--summary)
|
||||
show_diffstat=t ;;
|
||||
--squash)
|
||||
test "$allow_fast_forward" = t ||
|
||||
|
16
git-pull.sh
16
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-stat] [--[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_stat= 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-stat|--no-summary)
|
||||
no_stat=-n ;;
|
||||
--stat|--summary)
|
||||
no_stat=$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_stat $no_commit $squash $no_ff $strategy_args \
|
||||
"$merge_name" HEAD $merge_head
|
||||
|
@ -364,7 +364,7 @@ test_expect_success 'merge c1 with c2 (squash in config)' '
|
||||
|
||||
test_debug 'gitk --all'
|
||||
|
||||
test_expect_success 'override config option -n' '
|
||||
test_expect_success 'override config option -n with --summary' '
|
||||
git reset --hard c1 &&
|
||||
git config branch.master.mergeoptions "-n" &&
|
||||
test_tick &&
|
||||
@ -373,15 +373,30 @@ test_expect_success 'override config option -n' '
|
||||
verify_parents $c1 $c2 &&
|
||||
if ! grep "^ file | *2 +-$" diffstat.txt
|
||||
then
|
||||
echo "[OOPS] diffstat was not generated"
|
||||
echo "[OOPS] diffstat was not generated with --summary"
|
||||
false
|
||||
fi
|
||||
'
|
||||
|
||||
test_expect_success 'override config option -n with --stat' '
|
||||
git reset --hard c1 &&
|
||||
git config branch.master.mergeoptions "-n" &&
|
||||
test_tick &&
|
||||
git merge --stat c2 >diffstat.txt &&
|
||||
verify_merge file result.1-5 msg.1-5 &&
|
||||
verify_parents $c1 $c2 &&
|
||||
if ! grep "^ file | *2 +-$" diffstat.txt
|
||||
then
|
||||
echo "[OOPS] diffstat was not generated with --stat"
|
||||
false
|
||||
fi
|
||||
'
|
||||
|
||||
test_debug 'gitk --all'
|
||||
|
||||
test_expect_success 'override config option --summary' '
|
||||
test_expect_success 'override config option --stat' '
|
||||
git reset --hard c1 &&
|
||||
git config branch.master.mergeoptions "--summary" &&
|
||||
git config branch.master.mergeoptions "--stat" &&
|
||||
test_tick &&
|
||||
git merge -n c2 >diffstat.txt &&
|
||||
verify_merge file result.1-5 msg.1-5 &&
|
||||
|
Loading…
Reference in New Issue
Block a user