Merge branch 'pt/pull-ff-vs-merge-ff'
authorJunio C Hamano <gitster@pobox.com>
Tue, 26 May 2015 20:24:43 +0000 (13:24 -0700)
committerJunio C Hamano <gitster@pobox.com>
Tue, 26 May 2015 20:24:44 +0000 (13:24 -0700)
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

1  2 
Documentation/config.txt
git-pull.sh
diff --combined Documentation/config.txt
index 0f668bbe11a5b439fca53ca7aa52a43782e30b79,f45bef13ae57e6f67e8a6559e81d75c9610b3734..5f76e8cf4e5251d4bd414f9739247c752366070d
@@@ -453,8 -453,6 +453,8 @@@ false), while all other repositories ar
  
  core.worktree::
        Set the path to the root of the working tree.
 +      If GIT_COMMON_DIR environment variable is set, core.worktree
 +      is ignored and not used for determining the root of working tree.
        This can be overridden by the GIT_WORK_TREE environment
        variable and the '--work-tree' command-line option.
        The value can be an absolute path or relative to the path to
@@@ -624,12 -622,6 +624,12 @@@ core.commentChar:
  If set to "auto", `git-commit` would select a character that is not
  the beginning character of any line in existing commit messages.
  
 +core.packedRefsTimeout::
 +      The length of time, in milliseconds, to retry when trying to
 +      lock the `packed-refs` file. Value 0 means not to retry at
 +      all; -1 means to try indefinitely. Default is 1000 (i.e.,
 +      retry for 1 second).
 +
  sequence.editor::
        Text editor used by `git rebase -i` for editing the rebase instruction file.
        The value is meant to be interpreted by the shell when it is used.
@@@ -1282,13 -1274,6 +1282,13 @@@ gc.pruneExpire:
        "now" may be used to disable this  grace period and always prune
        unreachable objects immediately.
  
 +gc.pruneWorktreesExpire::
 +      When 'git gc' is run, it will call
 +      'prune --worktrees --expire 3.months.ago'.
 +      Override the grace period with this config variable. The value
 +      "now" may be used to disable the grace period and prune
 +      $GIT_DIR/worktrees immediately.
 +
  gc.reflogExpire::
  gc.<pattern>.reflogExpire::
        'git reflog expire' removes reflog entries older than
@@@ -1575,19 -1560,6 +1575,19 @@@ http.saveCookies:
        If set, store cookies received during requests to the file specified by
        http.cookieFile. Has no effect if http.cookieFile is unset.
  
 +http.sslCipherList::
 +  A list of SSL ciphers to use when negotiating an SSL connection.
 +  The available ciphers depend on whether libcurl was built against
 +  NSS or OpenSSL and the particular configuration of the crypto
 +  library in use.  Internally this sets the 'CURLOPT_SSL_CIPHER_LIST'
 +  option; see the libcurl documentation for more details on the format
 +  of this list.
 ++
 +Can be overridden by the 'GIT_SSL_CIPHER_LIST' environment variable.
 +To force git to use libcurl's default cipher list and ignore any
 +explicit http.sslCipherList option, set 'GIT_SSL_CIPHER_LIST' to the
 +empty string.
 +
  http.sslVerify::
        Whether to verify the SSL certificate when fetching or pushing
        over HTTPS. Can be overridden by the 'GIT_SSL_NO_VERIFY' environment
@@@ -2061,7 -2033,7 +2061,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
@@@ -2298,18 -2270,18 +2298,18 @@@ remote.<name>.skipFetchAll:
  
  remote.<name>.receivepack::
        The default program to execute on the remote side when pushing.  See
 -      option \--receive-pack of linkgit:git-push[1].
 +      option --receive-pack of linkgit:git-push[1].
  
  remote.<name>.uploadpack::
        The default program to execute on the remote side when fetching.  See
 -      option \--upload-pack of linkgit:git-fetch-pack[1].
 +      option --upload-pack of linkgit:git-fetch-pack[1].
  
  remote.<name>.tagOpt::
 -      Setting this value to \--no-tags disables automatic tag following when
 -      fetching from remote <name>. Setting it to \--tags will fetch every
 +      Setting this value to --no-tags disables automatic tag following when
 +      fetching from remote <name>. Setting it to --tags will fetch every
        tag from remote <name>, even if they are not reachable from remote
        branch heads. Passing these flags directly to linkgit:git-fetch[1] can
 -      override this setting. See options \--tags and \--no-tags of
 +      override this setting. See options --tags and --no-tags of
        linkgit:git-fetch[1].
  
  remote.<name>.vcs::
diff --combined git-pull.sh
index b8ae0059208f654a888e3a98ce27fc97c422a2af,09f6beabdcc9c069d688af1f82bac5cdbbdcdd07..0917d0d056573912df60afd7b556efe04eeebae8
@@@ -54,8 -54,11 +54,11 @@@ the
  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
        ;;
@@@ -81,8 -84,8 +84,8 @@@ d
                diffstat=--no-stat ;;
        --stat|--summary)
                diffstat=--stat ;;
 -      --log|--no-log)
 -              log_arg=$1 ;;
 +      --log|--log=*|--no-log)
 +              log_arg="$1" ;;
        --no-c|--no-co|--no-com|--no-comm|--no-commi|--no-commit)
                no_commit=--no-commit ;;
        --c|--co|--com|--comm|--commi|--commit)
@@@ -190,6 -193,15 +193,6 @@@ esa
  
  error_on_no_merge_candidates () {
        exec >&2
 -      for opt
 -      do
 -              case "$opt" in
 -              -t|--t|--ta|--tag|--tags)
 -                      echo "It doesn't make sense to pull all tags; you probably meant:"
 -                      echo "  git fetch --tags"
 -                      exit 1
 -              esac
 -      done
  
        if test true = "$rebase"
        then
@@@ -231,7 -243,7 +234,7 @@@ test true = "$rebase" && 
        if ! git rev-parse -q --verify HEAD >/dev/null
        then
                # On an unborn branch
 -              if test -f "$GIT_DIR/index"
 +              if test -f "$(git rev-parse --git-path index)"
                then
                        die "$(gettext "updating an unborn branch with changes added to the index")"
                fi
@@@ -314,6 -326,7 +317,6 @@@ the
        fi
  fi
  
 -merge_name=$(git fmt-merge-msg $log_arg <"$GIT_DIR/FETCH_HEAD") || exit
  case "$rebase" in
  true)
        eval="git-rebase $diffstat $strategy_args $merge_args $rebase_args $verbosity"
        eval="git-merge $diffstat $no_commit $verify_signatures $edit $squash $no_ff $ff_only"
        eval="$eval $log_arg $strategy_args $merge_args $verbosity $progress"
        eval="$eval $gpg_sign_args"
 -      eval="$eval \"\$merge_name\" HEAD $merge_head"
 +      eval="$eval FETCH_HEAD"
        ;;
  esac
  eval "exec $eval"