Merge branch 'pt/pull-ff-vs-merge-ff' into maint

The pull.ff configuration was supposed to override the merge.ff
configuration, but it didn't.

* pt/pull-ff-vs-merge-ff:
  pull: parse pull.ff as a bool or string
  pull: make pull.ff=true override merge.ff
This commit is contained in:
Junio C Hamano 2015-06-05 12:00:23 -07:00
commit 7e46f27fa6
3 changed files with 13 additions and 2 deletions

View file

@ -2033,7 +2033,7 @@ pull.ff::
a case (equivalent to giving the `--no-ff` option from the command
line). When set to `only`, only such fast-forward merges are
allowed (equivalent to giving the `--ff-only` option from the
command line).
command line). This setting overrides `merge.ff` when pulling.
pull.rebase::
When true, rebase branches on top of the fetched branch, instead

View file

@ -54,8 +54,11 @@ then
fi
# Setup default fast-forward options via `pull.ff`
pull_ff=$(git config pull.ff)
pull_ff=$(bool_or_string_config pull.ff)
case "$pull_ff" in
true)
no_ff=--ff
;;
false)
no_ff=--no-ff
;;

View file

@ -45,6 +45,14 @@ test_expect_success 'fast-forward pull succeeds with "true" in pull.ff' '
test "$(git rev-parse HEAD)" = "$(git rev-parse c1)"
'
test_expect_success 'pull.ff=true overrides merge.ff=false' '
git reset --hard c0 &&
test_config merge.ff false &&
test_config pull.ff true &&
git pull . c1 &&
test "$(git rev-parse HEAD)" = "$(git rev-parse c1)"
'
test_expect_success 'fast-forward pull creates merge with "false" in pull.ff' '
git reset --hard c0 &&
test_config pull.ff false &&