Code

git-merge.sh: better handling of combined --squash,--no-ff,--no-commit options
authorGerrit Pape <pape@smarden.org>
Mon, 3 Mar 2008 09:22:03 +0000 (09:22 +0000)
committerJunio C Hamano <gitster@pobox.com>
Mon, 3 Mar 2008 21:38:30 +0000 (13:38 -0800)
commite6d1f76ccf9de037c5479acdd9b6211e80145142
tree4d76faa0fca57f3a3809ff9457fb34abdf762458
parentf23d1f76273a59b030ea1028016e6a9fc9679d2c
git-merge.sh: better handling of combined --squash,--no-ff,--no-commit options

git-merge used to use either the --squash,--no-squash, --no-ff,--ff,
--no-commit,--commit option, whichever came last in the command line.
This lead to some un-intuitive behavior, having

 git merge --no-commit --no-ff <branch>

actually commit the merge.  Now git-merge respects --no-commit together
with --no-ff, as well as other combinations of the options.  However,
this broke a selftest in t/t7600-merge.sh which expected to have --no-ff
completely override the --squash option, so that

 git merge --squash --no-ff <branch>

fast-forwards, and makes a merge commit; combining --squash with --no-ff
doesn't really make sense though, and is now refused by git-merge.  The
test is adapted to test --no-ff without the preceding --squash, and
another test is added to make sure the --squash --no-ff combination is
refused.

The unexpected behavior was reported by John Goerzen through
 http://bing.sdebian.org/468568

Signed-off-by: Gerrit Pape <pape@smarden.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-merge.sh
t/t7600-merge.sh