This option can be used to override --no-commit and --squash. The change also introduces slightly different behavior for --no-commit: when specified, it explicitly overrides --squash. Signed-off-by: Lars Hjemli <hjemli@xxxxxxxxx> --- Documentation/merge-options.txt | 4 ++++ git-merge.sh | 6 ++++-- t/t7600-merge.sh | 16 ++++++++++++++++ 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/Documentation/merge-options.txt b/Documentation/merge-options.txt index d64c259..9be90b5 100644 --- a/Documentation/merge-options.txt +++ b/Documentation/merge-options.txt @@ -10,6 +10,10 @@ not autocommit, to give the user a chance to inspect and further tweak the merge result before committing. +--commit:: + Perform the merge and commit the result. This option can + be used to override --no-commit and --squash. + --squash:: Produce the working tree and index state as if a real merge happened, but do not actually make a commit or diff --git a/git-merge.sh b/git-merge.sh index 39a24ac..73ff130 100755 --- a/git-merge.sh +++ b/git-merge.sh @@ -3,7 +3,7 @@ # Copyright (c) 2005 Junio C Hamano # -USAGE='[-n] [--summary] [--no-commit] [--squash] [-s <strategy>] [-m=<merge-message>] <commit>+' +USAGE='[-n] [--summary] [--[no-]commit] [--squash] [-s <strategy>] [-m=<merge-message>] <commit>+' SUBDIRECTORY_OK=Yes . git-sh-setup @@ -128,8 +128,10 @@ parse_option () { show_diffstat=t ;; --sq|--squ|--squa|--squas|--squash) squash=t no_commit=t ;; + --c|--co|--com|--comm|--commi|--commit) + squash= no_commit= ;; --no-c|--no-co|--no-com|--no-comm|--no-commi|--no-commit) - no_commit=t ;; + squash= no_commit=t ;; -s=*|--s=*|--st=*|--str=*|--stra=*|--strat=*|--strate=*|\ --strateg=*|--strategy=*|\ -s|--s|--st|--str|--stra|--strat|--strate|--strateg|--strategy) diff --git a/t/t7600-merge.sh b/t/t7600-merge.sh index e99b5d9..75b0ee4 100755 --- a/t/t7600-merge.sh +++ b/t/t7600-merge.sh @@ -377,4 +377,20 @@ test_expect_success 'override config option --summary' ' fi ' +test_expect_success 'merge c1 with c2 (override --no-commit)' ' + git reset --hard c1 && + git config branch.master.mergeoptions "--no-commit" && + git merge --commit c2 && + test "$c1" = "$(git rev-parse HEAD^1)" && + test "$c2" = "$(git rev-parse HEAD^2)" +' + +test_expect_success 'merge c1 with c2 (override --squash)' ' + git reset --hard c1 && + git config branch.master.mergeoptions "--squash" && + git merge --commit c2 && + test "$c1" = "$(git rev-parse HEAD^1)" && + test "$c2" = "$(git rev-parse HEAD^2)" +' + test_done -- 1.5.3.2.82.g75c8d - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html