Merge branch 'db/doc-config-section-names-with-bs'
authorJunio C Hamano <gitster@pobox.com>
Fri, 5 Jan 2018 21:28:09 +0000 (13:28 -0800)
committerJunio C Hamano <gitster@pobox.com>
Fri, 5 Jan 2018 21:28:09 +0000 (13:28 -0800)
Doc update.

* db/doc-config-section-names-with-bs:
config.txt: document behavior of backslashes in subsections

1  2 
Documentation/config.txt
diff --combined Documentation/config.txt
index 64c1dbba940f1b3fe18117199b343adf258c0d78,a63b329ff4e8360f60095793cc0335a5ab6ee51b..0e25b2c92b309330f27ce562e0f21f4e10179879
@@@ -41,11 -41,13 +41,13 @@@ in the section header, like in the exam
  --------
  
  Subsection names are case sensitive and can contain any characters except
- newline (doublequote `"` and backslash can be included by escaping them
- as `\"` and `\\`, respectively).  Section headers cannot span multiple
- lines.  Variables may belong directly to a section or to a given subsection.
- You can have `[section]` if you have `[section "subsection"]`, but you
- don't need to.
+ newline and the null byte. Doublequote `"` and backslash can be included
+ by escaping them as `\"` and `\\`, respectively. Backslashes preceding
+ other characters are dropped when reading; for example, `\t` is read as
+ `t` and `\0` is read as `0` Section headers cannot span multiple lines.
+ Variables may belong directly to a section or to a given subsection. You
+ can have `[section]` if you have `[section "subsection"]`, but you don't
+ need to.
  
  There is also a deprecated `[section.subsection]` syntax. With this
  syntax, the subsection name is converted to lower-case and is also
@@@ -351,12 -353,6 +353,12 @@@ advice.*:
        addEmbeddedRepo::
                Advice on what to do when you've accidentally added one
                git repo inside of another.
 +      ignoredHook::
 +              Advice shown if an hook is ignored because the hook is not
 +              set as executable.
 +      waitingForEditor::
 +              Print a message to the terminal whenever Git is waiting for
 +              editor input from the user.
  --
  
  core.fileMode::
@@@ -419,13 -415,6 +421,13 @@@ core.protectNTFS:
        8.3 "short" names.
        Defaults to `true` on Windows, and `false` elsewhere.
  
 +core.fsmonitor::
 +      If set, the value of this variable is used as a command which
 +      will identify all files that may have changed since the
 +      requested date/time. This information is used to speed up git by
 +      avoiding unnecessary processing of files that have not changed.
 +      See the "fsmonitor-watchman" section of linkgit:githooks[5].
 +
  core.trustctime::
        If false, the ctime differences between the index and the
        working tree are ignored; useful when the inode change time
@@@ -1968,8 -1957,8 +1970,8 @@@ 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
 -      variable.
 +      over HTTPS. Defaults to true. Can be overridden by the
 +      `GIT_SSL_NO_VERIFY` environment variable.
  
  http.sslCert::
        File containing the SSL certificate when fetching or pushing
@@@ -2111,40 -2100,15 +2113,40 @@@ matched against are those given directl
  visited as a result of a redirection do not participate in matching.
  
  ssh.variant::
 -      Depending on the value of the environment variables `GIT_SSH` or
 -      `GIT_SSH_COMMAND`, or the config setting `core.sshCommand`, Git
 -      auto-detects whether to adjust its command-line parameters for use
 -      with plink or tortoiseplink, as opposed to the default (OpenSSH).
 +      By default, Git determines the command line arguments to use
 +      based on the basename of the configured SSH command (configured
 +      using the environment variable `GIT_SSH` or `GIT_SSH_COMMAND` or
 +      the config setting `core.sshCommand`). If the basename is
 +      unrecognized, Git will attempt to detect support of OpenSSH
 +      options by first invoking the configured SSH command with the
 +      `-G` (print configuration) option and will subsequently use
 +      OpenSSH options (if that is successful) or no options besides
 +      the host and remote command (if it fails).
 ++
 +The config variable `ssh.variant` can be set to override this detection.
 +Valid values are `ssh` (to use OpenSSH options), `plink`, `putty`,
 +`tortoiseplink`, `simple` (no options except the host and remote command).
 +The default auto-detection can be explicitly requested using the value
 +`auto`.  Any other value is treated as `ssh`.  This setting can also be
 +overridden via the environment variable `GIT_SSH_VARIANT`.
 ++
 +The current command-line parameters used for each variant are as
 +follows:
  +
 -The config variable `ssh.variant` can be set to override this auto-detection;
 -valid values are `ssh`, `plink`, `putty` or `tortoiseplink`. Any other value
 -will be treated as normal ssh. This setting can be overridden via the
 -environment variable `GIT_SSH_VARIANT`.
 +--
 +
 +* `ssh` - [-p port] [-4] [-6] [-o option] [username@]host command
 +
 +* `simple` - [username@]host command
 +
 +* `plink` or `putty` - [-P port] [-4] [-6] [username@]host command
 +
 +* `tortoiseplink` - [-P port] [-4] [-6] -batch [username@]host command
 +
 +--
 ++
 +Except for the `simple` variant, command-line parameters are likely to
 +change as git gains new features.
  
  i18n.commitEncoding::
        Character encoding the commit messages are stored in; Git itself
@@@ -2572,23 -2536,6 +2574,23 @@@ The protocol names currently used by gi
      `hg` to allow the `git-remote-hg` helper)
  --
  
 +protocol.version::
 +      Experimental. If set, clients will attempt to communicate with a
 +      server using the specified protocol version.  If unset, no
 +      attempt will be made by the client to communicate using a
 +      particular protocol version, this results in protocol version 0
 +      being used.
 +      Supported versions:
 ++
 +--
 +
 +* `0` - the original wire protocol.
 +
 +* `1` - the original wire protocol with the addition of a version string
 +  in the initial response from the server.
 +
 +--
 +
  pull.ff::
        By default, Git does not create an extra merge commit when merging
        a commit that is a descendant of the current commit. Instead, the
@@@ -2693,35 -2640,6 +2695,35 @@@ push.gpgSign:
        override a value from a lower-priority config file. An explicit
        command-line flag always overrides this config option.
  
 +push.pushOption::
 +      When no `--push-option=<option>` argument is given from the
 +      command line, `git push` behaves as if each <value> of
 +      this variable is given as `--push-option=<value>`.
 ++
 +This is a multi-valued variable, and an empty value can be used in a
 +higher priority configuration file (e.g. `.git/config` in a
 +repository) to clear the values inherited from a lower priority
 +configuration files (e.g. `$HOME/.gitconfig`).
 ++
 +--
 +
 +Example:
 +
 +/etc/gitconfig
 +  push.pushoption = a
 +  push.pushoption = b
 +
 +~/.gitconfig
 +  push.pushoption = c
 +
 +repo/.git/config
 +  push.pushoption =
 +  push.pushoption = b
 +
 +This will result in only b (a and c are cleared).
 +
 +--
 +
  push.recurseSubmodules::
        Make sure all submodule commits used by the revisions to be pushed
        are available on a remote-tracking branch. If the value is 'check'
        is retained. You may override this configuration at time of push by
        specifying '--recurse-submodules=check|on-demand|no'.
  
 -rebase.stat::
 -      Whether to show a diffstat of what changed upstream since the last
 -      rebase. False by default.
 -
 -rebase.autoSquash::
 -      If set to true enable `--autosquash` option by default.
 -
 -rebase.autoStash::
 -      When set to true, automatically create a temporary stash entry
 -      before the operation begins, and apply it after the operation
 -      ends.  This means that you can run rebase on a dirty worktree.
 -      However, use with care: the final stash application after a
 -      successful rebase might result in non-trivial conflicts.
 -      Defaults to false.
 -
 -rebase.missingCommitsCheck::
 -      If set to "warn", git rebase -i will print a warning if some
 -      commits are removed (e.g. a line was deleted), however the
 -      rebase will still proceed. If set to "error", it will print
 -      the previous warning and stop the rebase, 'git rebase
 -      --edit-todo' can then be used to correct the error. If set to
 -      "ignore", no checking is done.
 -      To drop a commit without warning or error, use the `drop`
 -      command in the todo-list.
 -      Defaults to "ignore".
 -
 -rebase.instructionFormat::
 -      A format string, as specified in linkgit:git-log[1], to be used for
 -      the instruction list during an interactive rebase.  The format will automatically
 -      have the long commit hash prepended to the format.
 +include::rebase-config.txt[]
  
  receive.advertiseAtomic::
        By default, git-receive-pack will advertise the atomic push
@@@ -3023,7 -2970,6 +3025,7 @@@ sendemail.smtpPass:
  sendemail.suppresscc::
  sendemail.suppressFrom::
  sendemail.to::
 +sendemail.tocmd::
  sendemail.smtpDomain::
  sendemail.smtpServer::
  sendemail.smtpServerPort::
@@@ -3442,13 -3388,3 +3444,13 @@@ web.browser:
        Specify a web browser that may be used by some commands.
        Currently only linkgit:git-instaweb[1] and linkgit:git-help[1]
        may use it.
 +
 +worktree.guessRemote::
 +      With `add`, if no branch argument, and neither of `-b` nor
 +      `-B` nor `--detach` are given, the command defaults to
 +      creating a new branch from HEAD.  If `worktree.guessRemote` is
 +      set to true, `worktree add` tries to find a remote-tracking
 +      branch whose name uniquely matches the new branch name.  If
 +      such a branch exists, it is checked out and set as "upstream"
 +      for the new branch.  If no such match can be found, it falls
 +      back to creating a new branch from the current HEAD.