Merge branch 'jk/asciidoc-markup-fix'
authorJunio C Hamano <gitster@pobox.com>
Fri, 22 May 2015 19:41:50 +0000 (12:41 -0700)
committerJunio C Hamano <gitster@pobox.com>
Fri, 22 May 2015 19:41:50 +0000 (12:41 -0700)
Various documentation mark-up fixes to make the output more
consistent in general and also make AsciiDoctor (an alternative
formatter) happier.

* jk/asciidoc-markup-fix:
doc: convert AsciiDoc {?foo} to ifdef::foo[]
doc: put example URLs and emails inside literal backticks
doc: drop backslash quoting of some curly braces
doc: convert \--option to --option
doc/add: reformat `--edit` option
doc: fix length of underlined section-title
doc: fix hanging "+"-continuation
doc: fix unquoted use of "{type}"
doc: fix misrendering due to `single quote'

1  2 
Documentation/config.txt
Documentation/diff-options.txt
Documentation/git-add.txt
Documentation/git-push.txt
Documentation/git-rebase.txt
Documentation/git-rev-parse.txt
Documentation/git-send-pack.txt
Documentation/git-tag.txt
diff --combined Documentation/config.txt
index efea933561bc42015773f5b8a855b4b77d7966b2,7714798ffe76812f11f71e128a14091495f12776..54cbf6b7ea8c6e21a4ffc5c767fc15c630ccd33c
@@@ -154,8 -154,9 +154,8 @@@ color:
         `white`; the attributes are `bold`, `dim`, `ul`, `blink` and
         `reverse`.  The first color given is the foreground; the
         second is the background.  The position of the attribute, if
 -       any, doesn't matter.  Attributes may be turned off
 -       specifically by prefixing them with `no` (e.g., `noreverse`,
 -      `noul`, etc).
 +       any, doesn't matter. Attributes may be turned off specifically
 +       by prefixing them with `no` (e.g., `noreverse`, `noul`, etc).
  +
  Colors (foreground and background) may also be given as numbers between
  0 and 255; these use ANSI 256-color mode (but note that not all
@@@ -269,7 -270,7 +269,7 @@@ See linkgit:git-update-index[1]
  +
  The default is true (when core.filemode is not specified in the config file).
  
 -core.ignorecase::
 +core.ignoreCase::
        If true, this option enables various workarounds to enable
        Git to work better on filesystems that are not case sensitive,
        like FAT. For example, if a directory listing finds
        "Makefile".
  +
  The default is false, except linkgit:git-clone[1] or linkgit:git-init[1]
 -will probe and set core.ignorecase true if appropriate when the repository
 +will probe and set core.ignoreCase true if appropriate when the repository
  is created.
  
 -core.precomposeunicode::
 +core.precomposeUnicode::
        This option is only used by Mac OS implementation of Git.
 -      When core.precomposeunicode=true, Git reverts the unicode decomposition
 +      When core.precomposeUnicode=true, Git reverts the unicode decomposition
        of filenames done by Mac OS. This is useful when sharing a repository
        between Mac OS and Linux or Windows.
        (Git for Windows 1.7.10 or higher is needed, or Git under cygwin 1.7).
@@@ -308,13 -309,13 +308,13 @@@ core.trustctime:
        crawlers and some backup systems).
        See linkgit:git-update-index[1]. True by default.
  
 -core.checkstat::
 +core.checkStat::
        Determines which stat fields to match between the index
        and work tree. The user can set this to 'default' or
        'minimal'. Default (or explicitly 'default'), is to check
        all fields, including the sub-second part of mtime and ctime.
  
 -core.quotepath::
 +core.quotePath::
        The commands that output paths (e.g. 'ls-files',
        'diff'), when not given the `-z` option, will quote
        "unusual" characters in the pathname by enclosing the
@@@ -453,8 -454,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
@@@ -520,9 -519,9 +520,9 @@@ core.compression:
        -1 is the zlib default. 0 means no compression,
        and 1..9 are various speed/size tradeoffs, 9 being slowest.
        If set, this provides a default to other compression variables,
 -      such as 'core.loosecompression' and 'pack.compression'.
 +      such as 'core.looseCompression' and 'pack.compression'.
  
 -core.loosecompression::
 +core.looseCompression::
        An integer -1..9, indicating the compression level for objects that
        are not in a pack file. -1 is the zlib default. 0 means no
        compression, and 1..9 are various speed/size tradeoffs, 9 being
@@@ -583,7 -582,7 +583,7 @@@ be delta compressed, but larger binary 
  +
  Common unit suffixes of 'k', 'm', or 'g' are supported.
  
 -core.excludesfile::
 +core.excludesFile::
        In addition to '.gitignore' (per-directory) and
        '.git/info/exclude', Git looks into this file for patterns
        of files which are not meant to be tracked.  "`~/`" is expanded
        If $XDG_CONFIG_HOME is either not set or empty, $HOME/.config/git/ignore
        is used instead. See linkgit:gitignore[5].
  
 -core.askpass::
 +core.askPass::
        Some commands (e.g. svn and http interfaces) that interactively
        ask for a password can be told to use an external program given
        via the value of this variable. Can be overridden by the 'GIT_ASKPASS'
        prompt. The external program shall be given a suitable prompt as
        command-line argument and write the password on its STDOUT.
  
 -core.attributesfile::
 +core.attributesFile::
        In addition to '.gitattributes' (per-directory) and
        '.git/info/attributes', Git looks into this file for attributes
        (see linkgit:gitattributes[5]). Path expansions are made the same
 -      way as for `core.excludesfile`. Its default value is
 +      way as for `core.excludesFile`. Its default value is
        $XDG_CONFIG_HOME/git/attributes. If $XDG_CONFIG_HOME is either not
        set or empty, $HOME/.config/git/attributes is used instead.
  
@@@ -615,7 -614,7 +615,7 @@@ core.editor:
        variable when it is set, and the environment variable
        `GIT_EDITOR` is not set.  See linkgit:git-var[1].
  
 -core.commentchar::
 +core.commentChar::
        Commands such as `commit` and `tag` that lets you edit
        messages consider a line that begins with this character
        commented, and removes them after the editor returns
@@@ -684,7 -683,7 +684,7 @@@ core.whitespace:
    is relevant for `indent-with-non-tab` and when Git fixes `tab-in-indent`
    errors. The default tab width is 8. Allowed values are 1 to 63.
  
 -core.fsyncobjectfiles::
 +core.fsyncObjectFiles::
        This boolean will enable 'fsync()' when writing object files.
  +
  This is a total waste of time and effort on a filesystem that orders
@@@ -692,7 -691,7 +692,7 @@@ data writes properly, but can be usefu
  journalling (traditional UNIX filesystems) or that only journal metadata
  and not file contents (OS X's HFS+, or Linux ext3 with "data=writeback").
  
 -core.preloadindex::
 +core.preloadIndex::
        Enable parallel index preload for operations like 'git diff'
  +
  This can speed up operations like 'git diff' and 'git status' especially
@@@ -763,7 -762,7 +763,7 @@@ am.keepcr:
        by giving '--no-keep-cr' from the command line.
        See linkgit:git-am[1], linkgit:git-mailsplit[1].
  
 -apply.ignorewhitespace::
 +apply.ignoreWhitespace::
        When set to 'change', tells 'git apply' to ignore changes in
        whitespace, in the same way as the '--ignore-space-change'
        option.
@@@ -775,7 -774,7 +775,7 @@@ apply.whitespace:
        Tells 'git apply' how to handle whitespaces, in the same way
        as the '--whitespace' option. See linkgit:git-apply[1].
  
 -branch.autosetupmerge::
 +branch.autoSetupMerge::
        Tells 'git branch' and 'git checkout' to set up new branches
        so that linkgit:git-pull[1] will appropriately merge from the
        starting point branch. Note that even if this option is not set,
        local branch or remote-tracking
        branch. This option defaults to true.
  
 -branch.autosetuprebase::
 +branch.autoSetupRebase::
        When a new branch is created with 'git branch' or 'git checkout'
        that tracks another branch, this variable tells Git to set
        up pull to rebase instead of merge (see "branch.<name>.rebase").
        remote-tracking branches.
        When `always`, rebase will be set to true for all tracking
        branches.
 -      See "branch.autosetupmerge" for details on how to set up a
 +      See "branch.autoSetupMerge" for details on how to set up a
        branch to track another branch.
        This option defaults to never.
  
  branch.<name>.remote::
        When on branch <name>, it tells 'git fetch' and 'git push'
        which remote to fetch from/push to.  The remote to push to
 -      may be overridden with `remote.pushdefault` (for all branches).
 +      may be overridden with `remote.pushDefault` (for all branches).
        The remote to push to, for the current branch, may be further
 -      overridden by `branch.<name>.pushremote`.  If no remote is
 +      overridden by `branch.<name>.pushRemote`.  If no remote is
        configured, or if you are not on any branch, it defaults to
 -      `origin` for fetching and `remote.pushdefault` for pushing.
 +      `origin` for fetching and `remote.pushDefault` for pushing.
        Additionally, `.` (a period) is the current local repository
        (a dot-repository), see `branch.<name>.merge`'s final note below.
  
 -branch.<name>.pushremote::
 +branch.<name>.pushRemote::
        When on branch <name>, it overrides `branch.<name>.remote` for
 -      pushing.  It also overrides `remote.pushdefault` for pushing
 +      pushing.  It also overrides `remote.pushDefault` for pushing
        from branch <name>.  When you pull from one place (e.g. your
        upstream) and push to another place (e.g. your own publishing
 -      repository), you would want to set `remote.pushdefault` to
 +      repository), you would want to set `remote.pushDefault` to
        specify the remote to push to for all branches, and use this
        option to override it for a specific branch.
  
@@@ -840,7 -839,7 +840,7 @@@ branch.<name>.merge:
        branch.<name>.merge to the desired branch, and use the relative path
        setting `.` (a period) for branch.<name>.remote.
  
 -branch.<name>.mergeoptions::
 +branch.<name>.mergeOptions::
        Sets default options for merging into branch <name>. The syntax and
        supported options are the same as those of linkgit:git-merge[1], but
        option values containing whitespace characters are currently not
@@@ -966,7 -965,7 +966,7 @@@ color.pager:
        A boolean to enable/disable colored output when the pager is in
        use (default is true).
  
 -color.showbranch::
 +color.showBranch::
        A boolean to enable/disable color in the output of
        linkgit:git-show-branch[1]. May be set to `always`,
        `false` (or `never`) or `auto` (or `true`), in which case colors are used
@@@ -1066,7 -1065,7 +1066,7 @@@ commit.cleanup:
        have to remove the help lines that begin with `#` in the commit log
        template yourself, if you do this).
  
 -commit.gpgsign::
 +commit.gpgSign::
  
        A boolean to specify whether all commits should be GPG signed.
        Use of this option when doing operations such as rebase can
@@@ -1179,7 -1178,7 +1179,7 @@@ format.cc:
        by mail.  See the --to and --cc options in
        linkgit:git-format-patch[1].
  
 -format.subjectprefix::
 +format.subjectPrefix::
        The default for format-patch is to output files with the '[PATCH]'
        subject prefix. Use this variable to change that prefix.
  
@@@ -1189,7 -1188,7 +1189,7 @@@ format.signature:
        Set this variable to the empty string ("") to suppress
        signature generation.
  
 -format.signaturefile::
 +format.signatureFile::
        Works just like format.signature except the contents of the
        file specified by this variable will be used as the signature.
  
@@@ -1213,7 -1212,7 +1213,7 @@@ format.thread:
        A true boolean value is the same as `shallow`, and a false
        value disables threading.
  
 -format.signoff::
 +format.signOff::
        A boolean value which lets you enable the `-s/--signoff` option of
        format-patch by default. *Note:* Adding the Signed-off-by: line to a
        patch should be a conscious act and means that you certify you have
@@@ -1252,17 -1251,17 +1252,17 @@@ gc.auto:
        light-weight garbage collection from time to time.  The
        default value is 6700.  Setting this to 0 disables it.
  
 -gc.autopacklimit::
 +gc.autoPackLimit::
        When there are more than this many packs that are not
        marked with `*.keep` file in the repository, `git gc
        --auto` consolidates them into one larger pack.  The
        default value is 50.  Setting this to 0 disables it.
  
 -gc.autodetach::
 +gc.autoDetach::
        Make `git gc --auto` return immediately and run in background
        if the system supports it. Default is true.
  
 -gc.packrefs::
 +gc.packRefs::
        Running `git pack-refs` in a repository renders it
        unclonable by Git versions prior to 1.5.1.2 over dumb
        transports such as HTTP.  This variable determines whether
        to enable it within all non-bare repos or it can be set to a
        boolean value.  The default is `true`.
  
 -gc.pruneexpire::
 +gc.pruneExpire::
        When 'git gc' is run, it will call 'prune --expire 2.weeks.ago'.
        Override the grace period with this config variable.  The value
        "now" may be used to disable this  grace period and always prune
        unreachable objects immediately.
  
 -gc.reflogexpire::
 -gc.<pattern>.reflogexpire::
 +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
        this time; defaults to 90 days.  With "<pattern>" (e.g.
        "refs/stash") in the middle the setting applies only to
        the refs that match the <pattern>.
  
 -gc.reflogexpireunreachable::
 -gc.<ref>.reflogexpireunreachable::
 +gc.reflogExpireUnreachable::
 +gc.<ref>.reflogExpireUnreachable::
        'git reflog expire' removes reflog entries older than
        this time and are not reachable from the current tip;
        defaults to 30 days.  With "<pattern>" (e.g. "refs/stash")
        in the middle, the setting applies only to the refs that
        match the <pattern>.
  
 -gc.rerereresolved::
 +gc.rerereResolved::
        Records of conflicted merge you resolved earlier are
        kept for this many days when 'git rerere gc' is run.
        The default is 60 days.  See linkgit:git-rerere[1].
  
 -gc.rerereunresolved::
 +gc.rerereUnresolved::
        Records of conflicted merge you have not resolved are
        kept for this many days when 'git rerere gc' is run.
        The default is 15 days.  See linkgit:git-rerere[1].
  
 -gitcvs.commitmsgannotation::
 +gitcvs.commitMsgAnnotation::
        Append this string to each commit message. Set to empty string
        to disable this feature. Defaults to "via git-CVS emulator".
  
@@@ -1316,7 -1308,7 +1316,7 @@@ gitcvs.enabled:
        Whether the CVS server interface is enabled for this repository.
        See linkgit:git-cvsserver[1].
  
 -gitcvs.logfile::
 +gitcvs.logFile::
        Path to a log file where the CVS server interface well... logs
        various stuff. See linkgit:git-cvsserver[1].
  
@@@ -1328,10 -1320,10 +1328,10 @@@ gitcvs.usecrlfattr:
        treat it as text. If they suppress text conversion, the file
        will be set with '-kb' mode, which suppresses any newline munging
        the client might otherwise do. If the attributes do not allow
 -      the file type to be determined, then 'gitcvs.allbinary' is
 +      the file type to be determined, then 'gitcvs.allBinary' is
        used. See linkgit:gitattributes[5].
  
 -gitcvs.allbinary::
 +gitcvs.allBinary::
        This is used if 'gitcvs.usecrlfattr' does not resolve
        the correct '-kb' mode to use. If true, all
        unresolved files are sent to the client in
        then the contents of the file are examined to decide if
        it is binary, similar to 'core.autocrlf'.
  
 -gitcvs.dbname::
 +gitcvs.dbName::
        Database used by git-cvsserver to cache revision information
        derived from the Git repository. The exact meaning depends on the
        used database driver, for SQLite (which is the default driver) this
        linkgit:git-cvsserver[1] for details). May not contain semicolons (`;`).
        Default: '%Ggitcvs.%m.sqlite'
  
 -gitcvs.dbdriver::
 +gitcvs.dbDriver::
        Used Perl DBI driver. You can specify any available driver
        for this here, but it might not work. git-cvsserver is tested
        with 'DBD::SQLite', reported to work with 'DBD::Pg', and
        May not contain double colons (`:`). Default: 'SQLite'.
        See linkgit:git-cvsserver[1].
  
 -gitcvs.dbuser, gitcvs.dbpass::
 -      Database user and password. Only useful if setting 'gitcvs.dbdriver',
 +gitcvs.dbUser, gitcvs.dbPass::
 +      Database user and password. Only useful if setting 'gitcvs.dbDriver',
        since SQLite has no concept of database users and/or passwords.
 -      'gitcvs.dbuser' supports variable substitution (see
 +      'gitcvs.dbUser' supports variable substitution (see
        linkgit:git-cvsserver[1] for details).
  
  gitcvs.dbTableNamePrefix::
        characters will be replaced with underscores.
  
  All gitcvs variables except for 'gitcvs.usecrlfattr' and
 -'gitcvs.allbinary' can also be specified as
 +'gitcvs.allBinary' can also be specified as
  'gitcvs.<access_method>.<varname>' (where 'access_method'
  is one of "ext" and "pserver") to make them apply only for the given
  access method.
@@@ -1389,7 -1381,7 +1389,7 @@@ gitweb.highlight:
  gitweb.patches::
  gitweb.pickaxe::
  gitweb.remote_heads::
 -gitweb.showsizes::
 +gitweb.showSizes::
  gitweb.snapshot::
        See linkgit:gitweb.conf[5] for description.
  
@@@ -1418,15 -1410,15 +1418,15 @@@ gpg.program:
        signed, and the program is expected to send the result to its
        standard output.
  
 -gui.commitmsgwidth::
 +gui.commitMsgWidth::
        Defines how wide the commit message window is in the
        linkgit:git-gui[1]. "75" is the default.
  
 -gui.diffcontext::
 +gui.diffContext::
        Specifies how many context lines should be used in calls to diff
        made by the linkgit:git-gui[1]. The default is "5".
  
 -gui.displayuntracked::
 +gui.displayUntracked::
        Determines if linkgit::git-gui[1] shows untracked files
        in the file list. The default is "true".
  
@@@ -1438,16 -1430,16 +1438,16 @@@ gui.encoding:
        If this option is not set, the tools default to the
        locale encoding.
  
 -gui.matchtrackingbranch::
 +gui.matchTrackingBranch::
        Determines if new branches created with linkgit:git-gui[1] should
        default to tracking remote branches with matching names or
        not. Default: "false".
  
 -gui.newbranchtemplate::
 +gui.newBranchTemplate::
        Is used as suggested name when creating new branches using the
        linkgit:git-gui[1].
  
 -gui.pruneduringfetch::
 +gui.pruneDuringFetch::
        "true" if linkgit:git-gui[1] should prune remote-tracking branches when
        performing a fetch. The default value is "false".
  
@@@ -1455,17 -1447,17 +1455,17 @@@ gui.trustmtime:
        Determines if linkgit:git-gui[1] should trust the file modification
        timestamp or not. By default the timestamps are not trusted.
  
 -gui.spellingdictionary::
 +gui.spellingDictionary::
        Specifies the dictionary used for spell checking commit messages in
        the linkgit:git-gui[1]. When set to "none" spell checking is turned
        off.
  
 -gui.fastcopyblame::
 +gui.fastCopyBlame::
        If true, 'git gui blame' uses `-C` instead of `-C -C` for original
        location detection. It makes blame significantly faster on huge
        repositories at the expense of less thorough copy detection.
  
 -gui.copyblamethreshold::
 +gui.copyBlameThreshold::
        Specifies the threshold to use in 'git gui blame' original location
        detection, measured in alphanumeric characters. See the
        linkgit:git-blame[1] manual for more information on copy detection.
@@@ -1485,22 -1477,22 +1485,22 @@@ guitool.<name>.cmd:
        'FILENAME', and the name of the current branch as 'CUR_BRANCH' (if
        the head is detached, 'CUR_BRANCH' is empty).
  
 -guitool.<name>.needsfile::
 +guitool.<name>.needsFile::
        Run the tool only if a diff is selected in the GUI. It guarantees
        that 'FILENAME' is not empty.
  
 -guitool.<name>.noconsole::
 +guitool.<name>.noConsole::
        Run the command silently, without creating a window to display its
        output.
  
 -guitool.<name>.norescan::
 +guitool.<name>.noRescan::
        Don't rescan the working directory for changes after the tool
        finishes execution.
  
  guitool.<name>.confirm::
        Show a confirmation dialog before actually running the tool.
  
 -guitool.<name>.argprompt::
 +guitool.<name>.argPrompt::
        Request a string argument from the user, and pass it to the tool
        through the 'ARGS' environment variable. Since requesting an
        argument implies confirmation, the 'confirm' option has no effect
        the dialog uses a built-in generic prompt; otherwise the exact
        value of the variable is used.
  
 -guitool.<name>.revprompt::
 +guitool.<name>.revPrompt::
        Request a single valid revision from the user, and set the
        'REVISION' environment variable. In other aspects this option
 -      is similar to 'argprompt', and can be used together with it.
 +      is similar to 'argPrompt', and can be used together with it.
  
 -guitool.<name>.revunmerged::
 -      Show only unmerged branches in the 'revprompt' subdialog.
 +guitool.<name>.revUnmerged::
 +      Show only unmerged branches in the 'revPrompt' subdialog.
        This is useful for tools similar to merge or rebase, but not
        for things like checkout or reset.
  
@@@ -1524,7 -1516,7 +1524,7 @@@ guitool.<name>.title:
  
  guitool.<name>.prompt::
        Specifies the general prompt string to display at the top of
 -      the dialog, before subsections for 'argprompt' and 'revprompt'.
 +      the dialog, before subsections for 'argPrompt' and 'revPrompt'.
        The default value includes the actual command.
  
  help.browser::
@@@ -1536,7 -1528,7 +1536,7 @@@ help.format:
        Values 'man', 'info', 'web' and 'html' are supported. 'man' is
        the default. 'web' and 'html' are the same.
  
 -help.autocorrect::
 +help.autoCorrect::
        Automatically correct and execute mistyped commands after
        waiting for the given number of deciseconds (0.1 sec). If more
        than one command can be deduced from the entered text, nothing
        value is 0 - the command will be just shown but not executed.
        This is the default.
  
 -help.htmlpath::
 +help.htmlPath::
        Specify the path where the HTML documentation resides. File system paths
        and URLs are supported. HTML pages will be prefixed with this path when
        help is displayed in the 'web' format. This defaults to the documentation
@@@ -1557,30 -1549,17 +1557,30 @@@ http.proxy:
        `curl(1)`).  This can be overridden on a per-remote basis; see
        remote.<name>.proxy
  
 -http.cookiefile::
 +http.cookieFile::
        File containing previously stored cookie lines which should be used
        in the Git http session, if they match the server. The file format
        of the file to read cookies from should be plain HTTP headers or
        the Netscape/Mozilla cookie file format (see linkgit:curl[1]).
 -      NOTE that the file specified with http.cookiefile is only used as
 +      NOTE that the file specified with http.cookieFile is only used as
        input unless http.saveCookies is set.
  
 -http.savecookies::
 +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.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
@@@ -1651,7 -1630,7 +1651,7 @@@ http.noEPSV:
        support EPSV mode. Can be overridden by the 'GIT_CURL_FTP_NO_EPSV'
        environment variable. Default is false (curl will use EPSV).
  
 -http.useragent::
 +http.userAgent::
        The HTTP USER_AGENT string presented to an HTTP server.  The default
        value represents the version of the client Git such as git/1.7.1.
        This option allows you to override this value to a more common value
@@@ -1724,7 -1703,7 +1724,7 @@@ index.version:
        Specify the version with which new index files should be
        initialized.  This does not affect existing repositories.
  
 -init.templatedir::
 +init.templateDir::
        Specify the directory from which templates will be copied.
        (See the "TEMPLATE DIRECTORY" section of linkgit:git-init[1].)
  
@@@ -1740,7 -1719,7 +1740,7 @@@ instaweb.local:
        If true the web server started by linkgit:git-instaweb[1] will
        be bound to the local IP (127.0.0.1).
  
 -instaweb.modulepath::
 +instaweb.modulePath::
        The default module path for linkgit:git-instaweb[1] to use
        instead of /usr/lib/apache2/modules.  Only used if httpd
        is Apache.
@@@ -1749,7 -1728,7 +1749,7 @@@ instaweb.port:
        The port number to bind the gitweb httpd to. See
        linkgit:git-instaweb[1].
  
 -interactive.singlekey::
 +interactive.singleKey::
        In interactive commands, allow the user to provide one-letter
        input with a single key (i.e., without hitting enter).
        Currently this is used by the `--patch` mode of
@@@ -1777,7 -1756,7 +1777,7 @@@ log.decorate:
        specified, the full ref name (including prefix) will be printed.
        This is the same as the log commands '--decorate' option.
  
 -log.showroot::
 +log.showRoot::
        If true, the initial commit will be shown as a big creation event.
        This is equivalent to a diff against an empty tree.
        Tools like linkgit:git-log[1] or linkgit:git-whatchanged[1], which
@@@ -2014,7 -1993,7 +2014,7 @@@ pack.useBitmaps:
        true. You should not generally need to turn this off unless
        you are debugging pack bitmaps.
  
 -pack.writebitmaps (deprecated)::
 +pack.writeBitmaps (deprecated)::
        This is a deprecated synonym for `repack.writeBitmaps`.
  
  pack.writeBitmapHashCache::
@@@ -2133,20 -2112,14 +2133,20 @@@ new default)
  
  --
  
 +push.followTags::
 +      If set to true enable '--follow-tags' option by default.  You
 +      may override this configuration at time of push by specifying
 +      '--no-follow-tags'.
 +
 +
  rebase.stat::
        Whether to show a diffstat of what changed upstream since the last
        rebase. False by default.
  
 -rebase.autosquash::
 +rebase.autoSquash::
        If set to true enable '--autosquash' option by default.
  
 -rebase.autostash::
 +rebase.autoStash::
        When set to true, automatically create a temporary stash
        before the operation begins, and apply it after the operation
        ends.  This means that you can run rebase on a dirty worktree.
        successful rebase might result in non-trivial conflicts.
        Defaults to false.
  
 +receive.advertiseAtomic::
 +      By default, git-receive-pack will advertise the atomic push
 +      capability to its clients. If you don't want to this capability
 +      to be advertised, set this variable to false.
 +
  receive.autogc::
        By default, git-receive-pack will run "git-gc --auto" after
        receiving data from git-push and updating refs.  You can stop
        it by setting this variable to false.
  
 -receive.certnonceseed::
 +receive.certNonceSeed::
        By setting this variable to a string, `git receive-pack`
        will accept a `git push --signed` and verifies it by using
        a "nonce" protected by HMAC using this string as a secret
        key.
  
 -receive.certnonceslop::
 +receive.certNonceSlop::
        When a `git push --signed` sent a push certificate with a
        "nonce" that was issued by a receive-pack serving the same
        repository within this many seconds, export the "nonce"
@@@ -2218,15 -2186,11 +2218,15 @@@ receive.denyCurrentBranch:
        message. Defaults to "refuse".
  +
  Another option is "updateInstead" which will update the working
 -directory (must be clean) if pushing into the current branch. This option is
 +tree if pushing into the current branch.  This option is
  intended for synchronizing working directories when one side is not easily
  accessible via interactive ssh (e.g. a live web site, hence the requirement
  that the working directory be clean). This mode also comes in handy when
  developing inside a VM to test and fix code on different Operating Systems.
 ++
 +By default, "updateInstead" will refuse the push if the working tree or
 +the index have any difference from the HEAD, but the `push-to-checkout`
 +hook can be used to customize this.  See linkgit:githooks[5].
  
  receive.denyNonFastForwards::
        If set to true, git-receive-pack will deny a ref update which is
        even if that push is forced. This configuration variable is
        set when initializing a shared repository.
  
 -receive.hiderefs::
 +receive.hideRefs::
        String(s) `receive-pack` uses to decide which refs to omit
        from its initial advertisement.  Use more than one
        definitions to specify multiple prefix strings. A ref that
        push`, and an attempt to update or delete a hidden ref by
        `git push` is rejected.
  
 -receive.updateserverinfo::
 +receive.updateServerInfo::
        If set to true, git-receive-pack will run git-update-server-info
        after receiving data from git-push and updating refs.
  
 -receive.shallowupdate::
 +receive.shallowUpdate::
        If set to true, .git/shallow can be updated when new refs
        require new shallow roots. Otherwise those refs are rejected.
  
 -remote.pushdefault::
 +remote.pushDefault::
        The remote to push to by default.  Overrides
        `branch.<name>.remote` for all branches, and is overridden by
 -      `branch.<name>.pushremote` for specific branches.
 +      `branch.<name>.pushRemote` for specific branches.
  
  remote.<name>.url::
        The URL of a remote repository.  See linkgit:git-fetch[1] or
@@@ -2292,18 -2256,18 +2292,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::
 +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::
@@@ -2320,7 -2284,7 +2320,7 @@@ remotes.<group>:
        The list of remotes which are fetched by "git remote update
        <group>".  See linkgit:git-remote[1].
  
 -repack.usedeltabaseoffset::
 +repack.useDeltaBaseOffset::
        By default, linkgit:git-repack[1] creates packs that use
        delta-base offset. If you need to share your repository with
        Git older than version 1.4.4, either directly or via a dumb
@@@ -2343,7 -2307,7 +2343,7 @@@ repack.writeBitmaps:
        space and extra time spent on the initial repack.  Defaults to
        false.
  
 -rerere.autoupdate::
 +rerere.autoUpdate::
        When set to true, `git-rerere` updates the index with the
        resulting contents after it cleanly resolves conflicts using
        previously recorded resolution.  Defaults to false.
@@@ -2362,12 -2326,12 +2362,12 @@@ sendemail.identity:
        values in the 'sendemail' section. The default identity is
        the value of 'sendemail.identity'.
  
 -sendemail.smtpencryption::
 +sendemail.smtpEncryption::
        See linkgit:git-send-email[1] for description.  Note that this
        setting is not subject to the 'identity' mechanism.
  
  sendemail.smtpssl (deprecated)::
 -      Deprecated alias for 'sendemail.smtpencryption = ssl'.
 +      Deprecated alias for 'sendemail.smtpEncryption = ssl'.
  
  sendemail.smtpsslcertpath::
        Path to ca-certificates (either a directory or a single file).
@@@ -2379,29 -2343,29 +2379,29 @@@ sendemail.<identity>.*:
        identity is selected, through command-line or
        'sendemail.identity'.
  
 -sendemail.aliasesfile::
 -sendemail.aliasfiletype::
 +sendemail.aliasesFile::
 +sendemail.aliasFileType::
  sendemail.annotate::
  sendemail.bcc::
  sendemail.cc::
 -sendemail.cccmd::
 -sendemail.chainreplyto::
 +sendemail.ccCmd::
 +sendemail.chainReplyTo::
  sendemail.confirm::
 -sendemail.envelopesender::
 +sendemail.envelopeSender::
  sendemail.from::
 -sendemail.multiedit::
 +sendemail.multiEdit::
  sendemail.signedoffbycc::
 -sendemail.smtppass::
 +sendemail.smtpPass::
  sendemail.suppresscc::
 -sendemail.suppressfrom::
 +sendemail.suppressFrom::
  sendemail.to::
 -sendemail.smtpdomain::
 -sendemail.smtpserver::
 -sendemail.smtpserverport::
 -sendemail.smtpserveroption::
 -sendemail.smtpuser::
 +sendemail.smtpDomain::
 +sendemail.smtpServer::
 +sendemail.smtpServerPort::
 +sendemail.smtpServerOption::
 +sendemail.smtpUser::
  sendemail.thread::
 -sendemail.transferencoding::
 +sendemail.transferEncoding::
  sendemail.validate::
  sendemail.xmailer::
        See linkgit:git-send-email[1] for description.
@@@ -2453,7 -2417,7 +2453,7 @@@ If this variable is not specified, it d
  This variable can be overridden with the -u|--untracked-files option
  of linkgit:git-status[1] and linkgit:git-commit[1].
  
 -status.submodulesummary::
 +status.submoduleSummary::
        Defaults to false.
        If this is set to a non zero number or true (identical to -1 or an
        unlimited number), the submodule summary will be enabled and a
@@@ -2528,9 -2492,9 +2528,9 @@@ transfer.fsckObjects:
        not set, the value of this variable is used instead.
        Defaults to false.
  
 -transfer.hiderefs::
 -      This variable can be used to set both `receive.hiderefs`
 -      and `uploadpack.hiderefs` at the same time to the same
 +transfer.hideRefs::
 +      This variable can be used to set both `receive.hideRefs`
 +      and `uploadpack.hideRefs` at the same time to the same
        values.  See entries for these other variables.
  
  transfer.unpackLimit::
@@@ -2545,7 -2509,7 +2545,7 @@@ uploadarchive.allowUnreachable:
        linkgit:git-upload-archive[1] for more details. Defaults to
        `false`.
  
 -uploadpack.hiderefs::
 +uploadpack.hideRefs::
        String(s) `upload-pack` uses to decide which refs to omit
        from its initial advertisement.  Use more than one
        definitions to specify multiple prefix strings. A ref that
        fetch` will fail.  See also `uploadpack.allowtipsha1inwant`.
  
  uploadpack.allowtipsha1inwant::
 -      When `uploadpack.hiderefs` is in effect, allow `upload-pack`
 +      When `uploadpack.hideRefs` is in effect, allow `upload-pack`
        to accept a fetch request that asks for an object at the tip
        of a hidden ref (by default, such a request is rejected).
 -      see also `uploadpack.hiderefs`.
 +      see also `uploadpack.hideRefs`.
  
 -uploadpack.keepalive::
 +uploadpack.keepAlive::
        When `upload-pack` has started `pack-objects`, there may be a
        quiet period while `pack-objects` prepares the pack. Normally
        it would output progress information, but if `--quiet` was used
        the pack data begins. Some clients and networks may consider
        the server to be hung and give up. Setting this option instructs
        `upload-pack` to send an empty keepalive packet every
 -      `uploadpack.keepalive` seconds. Setting this option to 0
 +      `uploadpack.keepAlive` seconds. Setting this option to 0
        disables keepalive packets entirely. The default is 5 seconds.
  
  url.<base>.insteadOf::
@@@ -2605,25 -2569,13 +2605,25 @@@ user.name:
        Can be overridden by the 'GIT_AUTHOR_NAME' and 'GIT_COMMITTER_NAME'
        environment variables.  See linkgit:git-commit-tree[1].
  
 -user.signingkey::
 +user.signingKey::
        If linkgit:git-tag[1] or linkgit:git-commit[1] is not selecting the
        key you want it to automatically when creating a signed tag or
        commit, you can override the default selection with this variable.
        This option is passed unchanged to gpg's --local-user parameter,
        so you may specify a key using any method that gpg supports.
  
 +versionsort.prereleaseSuffix::
 +      When version sort is used in linkgit:git-tag[1], prerelease
 +      tags (e.g. "1.0-rc1") may appear after the main release
 +      "1.0". By specifying the suffix "-rc" in this variable,
 +      "1.0-rc1" will appear before "1.0".
 ++
 +This variable can be specified multiple times, once per suffix. The
 +order of suffixes in the config file determines the sorting order
 +(e.g. if "-pre" appears before "-rc" in the config file then 1.0-preXX
 +is sorted before 1.0-rcXX). The sorting order between different
 +suffixes is undefined if they are in multiple config files.
 +
  web.browser::
        Specify a web browser that may be used by some commands.
        Currently only linkgit:git-instaweb[1] and linkgit:git-help[1]
index ccd499867b64d0609df66196f833fff173dd60da,f77df9806e144a2929afe8420eb988746b95acfb..b7c3afeb3a0ce871d426de6912a6a875f37620fa
@@@ -23,7 -23,9 +23,9 @@@ ifndef::git-format-patch[
  -u::
  --patch::
        Generate patch (see section on generating patches).
-       {git-diff? This is the default.}
+ ifdef::git-diff[]
+       This is the default.
+ endif::git-diff[]
  endif::git-format-patch[]
  
  -s::
@@@ -42,7 -44,9 +44,9 @@@ endif::git-format-patch[
  ifndef::git-format-patch[]
  --raw::
        Generate the raw format.
-       {git-diff-core? This is the default.}
+ ifdef::git-diff-core[]
+       This is the default.
+ endif::git-diff-core[]
  endif::git-format-patch[]
  
  ifndef::git-format-patch[]
@@@ -432,8 -436,8 +436,8 @@@ endif::git-format-patch[
  -O<orderfile>::
        Output the patch in the order specified in the
        <orderfile>, which has one shell glob pattern per line.
 -      This overrides the `diff.orderfile` configuration variable
 -      (see linkgit:git-config[1]).  To cancel `diff.orderfile`,
 +      This overrides the `diff.orderFile` configuration variable
 +      (see linkgit:git-config[1]).  To cancel `diff.orderFile`,
        use `-O/dev/null`.
  
  ifndef::git-format-patch[]
index f2eb9076d73d830c19dc70bf2175e55a46ae1111,72d97c08f5bb5ee4a59e335f8ba2686e28f8958b..fe5282f1305902545eaff585ced432d296dd64f4
@@@ -93,7 -93,8 +93,8 @@@ This effectively runs `add --interactiv
  initial command menu and directly jumps to the `patch` subcommand.
  See ``Interactive mode'' for details.
  
- -e, \--edit::
+ -e::
+ --edit::
        Open the diff vs. the index in an editor and let the user
        edit it.  After the editor was closed, adjust the hunk headers
        and apply the patch to the index.
@@@ -173,7 -174,7 +174,7 @@@ for "git add --no-all <pathspec>...", i
  Configuration
  -------------
  
 -The optional configuration variable `core.excludesfile` indicates a path to a
 +The optional configuration variable `core.excludesFile` indicates a path to a
  file containing patterns of file names to exclude from git-add, similar to
  $GIT_DIR/info/exclude.  Patterns in the exclude file are used in addition to
  those in info/exclude.  See linkgit:gitignore[5].
@@@ -317,7 -318,7 +318,7 @@@ After deciding the fate for all hunks, 
  that was chosen, the index is updated with the selected hunks.
  +
  You can omit having to type return here, by setting the configuration
 -variable `interactive.singlekey` to `true`.
 +variable `interactive.singleKey` to `true`.
  
  diff::
  
index 863c30c4c2d0fd78ee81d219ed221cb248ce1994,bf6569f6666c33864130f65f0fe865d98dc402f5..135d810b7a9b7e36d1cb06ca49c185655a655bee
@@@ -9,7 -9,7 +9,7 @@@ git-push - Update remote refs along wit
  SYNOPSIS
  --------
  [verse]
 -'git push' [--all | --mirror | --tags] [--follow-tags] [-n | --dry-run] [--receive-pack=<git-receive-pack>]
 +'git push' [--all | --mirror | --tags] [--follow-tags] [--atomic] [-n | --dry-run] [--receive-pack=<git-receive-pack>]
           [--repo=<repository>] [-f | --force] [--prune] [-v | --verbose]
           [-u | --set-upstream] [--signed]
           [--force-with-lease[=<refname>[:<expect>]]]
@@@ -128,10 -128,7 +128,10 @@@ already exists on the remote side
        Push all the refs that would be pushed without this option,
        and also push annotated tags in `refs/tags` that are missing
        from the remote but are pointing at commit-ish that are
 -      reachable from the refs being pushed.
 +      reachable from the refs being pushed.  This can also be specified
 +      with configuration variable 'push.followTags'.  For more
 +      information, see 'push.followTags' in linkgit:git-config[1].
 +
  
  --signed::
        GPG-sign the push request to update refs on the receiving
        logged.  See linkgit:git-receive-pack[1] for the details
        on the receiving end.
  
 +--[no-]atomic::
 +      Use an atomic transaction on the remote side if available.
 +      Either all refs are updated, or on error, no refs are updated.
 +      If the server does not support atomic pushes the push will fail.
 +
  --receive-pack=<git-receive-pack>::
  --exec=<git-receive-pack>::
        Path to the 'git-receive-pack' program on the remote
@@@ -265,8 -257,8 +265,8 @@@ origin +master` to force a push to the 
  
  --[no-]verify::
        Toggle the pre-push hook (see linkgit:githooks[5]).  The
-       default is \--verify, giving the hook a chance to prevent the
-       push.  With \--no-verify, the hook is bypassed completely.
+       default is --verify, giving the hook a chance to prevent the
+       push.  With --no-verify, the hook is bypassed completely.
  
  
  include::urls-remotes.txt[]
index 47984e84ed2f994ec48c1d659e47c1ecd6a17f23,1920be30e8eaef9b5ae777b897ec2acb88daa867..1d01baa5fcfd03370953e8311b9c7bf3b49e2f4e
@@@ -80,7 -80,7 +80,7 @@@ remain the checked-out branch
  If the upstream branch already contains a change you have made (e.g.,
  because you mailed a patch which was applied upstream), then that commit
  will be skipped. For example, running `git rebase master` on the
- following history (in which A' and A introduce the same set of changes,
+ following history (in which `A'` and `A` introduce the same set of changes,
  but have different committer information):
  
  ------------
@@@ -207,10 -207,10 +207,10 @@@ rebase.stat:
        Whether to show a diffstat of what changed upstream since the last
        rebase. False by default.
  
 -rebase.autosquash::
 +rebase.autoSquash::
        If set to true enable '--autosquash' option by default.
  
 -rebase.autostash::
 +rebase.autoStash::
        If set to true enable '--autostash' option by default.
  
  OPTIONS
@@@ -416,7 -416,7 +416,7 @@@ squash/fixup series
  This option is only valid when the '--interactive' option is used.
  +
  If the '--autosquash' option is enabled by default using the
 -configuration variable `rebase.autosquash`, this option can be
 +configuration variable `rebase.autoSquash`, this option can be
  used to override and disable this setting.
  
  --[no-]autostash::
index 97fc703f4c0db968151b39de537fc641e5a19c32,bf81b9734ee0360f632686af9b241a1eeadaf493..c483100e75886e7326cecabcd66f1449e640365a
@@@ -102,7 -102,7 +102,7 @@@ eval "set -- $(git rev-parse --sq --pre
  +
  If you want to make sure that the output actually names an object in
  your object database and/or can be used as a specific type of object
- you require, you can add "\^{type}" peeling operator to the parameter.
+ you require, you can add the `^{type}` peeling operator to the parameter.
  For example, `git rev-parse "$VAR^{commit}"` will make sure `$VAR`
  names an existing object that is a commit-ish (i.e. a commit, or an
  annotated tag that points at a commit).  To make sure that `$VAR`
@@@ -147,7 -147,7 +147,7 @@@ can be used
        form as close to the original input as possible.
  
  --symbolic-full-name::
-       This is similar to \--symbolic, but it omits input that
+       This is similar to --symbolic, but it omits input that
        are not refs (i.e. branch or tag names; or more
        explicitly disambiguating "heads/master" form, when you
        want to name the "master" branch when there is an
@@@ -216,9 -216,6 +216,9 @@@ If `$GIT_DIR` is not defined and the cu
  is not detected to lie in a Git repository or work tree
  print a message to stderr and exit with nonzero status.
  
 +--git-common-dir::
 +      Show `$GIT_COMMON_DIR` if defined, else `$GIT_DIR`.
 +
  --is-inside-git-dir::
        When the current working directory is below the repository
        directory print "true", otherwise "false".
        repository.  If <path> is a gitfile then the resolved path
        to the real repository is printed.
  
 +--git-path <path>::
 +      Resolve "$GIT_DIR/<path>" and takes other path relocation
 +      variables such as $GIT_OBJECT_DIRECTORY,
 +      $GIT_INDEX_FILE... into account. For example, if
 +      $GIT_OBJECT_DIRECTORY is set to /foo/bar then "git rev-parse
 +      --git-path objects/abc" returns /foo/bar/abc.
 +
  --show-cdup::
        When the command is invoked from a subdirectory, show the
        path of the top-level directory relative to the current
index 45c7725dc303eed198fc0ed370f603a71d1fa8c1,1b5ba442fde58079a70479b72ae82404d620541c..b5d09f79ee686d20b6e99196202546eac1ce2635
@@@ -9,7 -9,7 +9,7 @@@ git-send-pack - Push objects over Git p
  SYNOPSIS
  --------
  [verse]
 -'git send-pack' [--all] [--dry-run] [--force] [--receive-pack=<git-receive-pack>] [--verbose] [--thin] [<host>:]<directory> [<ref>...]
 +'git send-pack' [--all] [--dry-run] [--force] [--receive-pack=<git-receive-pack>] [--verbose] [--thin] [--atomic] [<host>:]<directory> [<ref>...]
  
  DESCRIPTION
  -----------
@@@ -29,7 -29,7 +29,7 @@@ OPTION
        a directory on the default $PATH.
  
  --exec=<git-receive-pack>::
-       Same as \--receive-pack=<git-receive-pack>.
+       Same as --receive-pack=<git-receive-pack>.
  
  --all::
        Instead of explicitly specifying which refs to update,
@@@ -62,11 -62,6 +62,11 @@@ be in a separate packet, and the list m
        Send a "thin" pack, which records objects in deltified form based
        on objects not included in the pack to reduce network traffic.
  
 +--atomic::
 +      Use an atomic transaction for updating the refs. If any of the refs
 +      fails to update then the entire push will fail without changing any
 +      refs.
 +
  <host>::
        A remote host to house the repository.  When this
        part is specified, 'git-receive-pack' is invoked via
index f5b267e1e300c965704ab3918fe16163351fd1cf,01dc803fc2d3d06808db2299c9abc5a8c2dbbbfc..034d10d633c343b17a83879b00aae3ba2a98a388
@@@ -98,13 -98,10 +98,13 @@@ OPTION
  --sort=<type>::
        Sort in a specific order. Supported type is "refname"
        (lexicographic order), "version:refname" or "v:refname" (tag
 -      names are treated as versions). Prepend "-" to reverse sort
 -      order. When this option is not given, the sort order defaults to the
 -      value configured for the 'tag.sort' variable if it exists, or
 -      lexicographic order otherwise. See linkgit:git-config[1].
 +      names are treated as versions). The "version:refname" sort
 +      order can also be affected by the
 +      "versionsort.prereleaseSuffix" configuration variable. Prepend
 +      "-" to reverse sort order. When this option is not given, the
 +      sort order defaults to the value configured for the 'tag.sort'
 +      variable if it exists, or lexicographic order otherwise. See
 +      linkgit:git-config[1].
  
  --column[=<options>]::
  --no-column::
@@@ -158,13 -155,13 +158,13 @@@ This option is only applicable when lis
  CONFIGURATION
  -------------
  By default, 'git tag' in sign-with-default mode (-s) will use your
- committer identity (of the form "Your Name <\your@email.address>") to
+ committer identity (of the form `Your Name <your@email.address>`) to
  find a key.  If you want to use a different default key, you can specify
  it in the repository configuration as follows:
  
  -------------------------------------
  [user]
 -    signingkey = <gpg-key-id>
 +    signingKey = <gpg-key-id>
  -------------------------------------