Merge branch 'maint'
[gitweb.git] / Documentation / config.txt
index 0d98c92cc94cbd071804fd47418c071fdad1a358..285c7f73ca1b7a2a63b549a6cacec4cc77ad5ad7 100644 (file)
@@ -442,8 +442,6 @@ for most projects as source code and other text files can still
 be delta compressed, but larger binary media files won't be.
 +
 Common unit suffixes of 'k', 'm', or 'g' are supported.
-+
-Currently only linkgit:git-fast-import[1] honors this setting.
 
 core.excludesfile::
        In addition to '.gitignore' (per-directory) and
@@ -589,6 +587,8 @@ it will be treated as a shell command.  For example, defining
 "gitk --all --not ORIG_HEAD".  Note that shell commands will be
 executed from the top-level directory of a repository, which may
 not necessarily be the current directory.
+'GIT_PREFIX' is set as returned by running 'git rev-parse --show-prefix'
+from the original current directory. See linkgit:git-rev-parse[1].
 
 am.keepcr::
        If true, git-am will call git-mailsplit for patches in mbox format
@@ -643,7 +643,7 @@ branch.<name>.remote::
 
 branch.<name>.merge::
        Defines, together with branch.<name>.remote, the upstream branch
-       for the given branch. It tells 'git fetch'/'git pull' which
+       for the given branch. It tells 'git fetch'/'git pull'/'git rebase' which
        branch to merge and can also affect 'git push' (see push.default).
        When in branch <name>, it tells 'git fetch' the default
        refspec to be marked for merging in FETCH_HEAD. The value is
@@ -708,9 +708,16 @@ second is the background.  The position of the attribute, if any,
 doesn't matter.
 
 color.diff::
-       When set to `always`, always use colors in patch.
-       When false (or `never`), never.  When set to `true` or `auto`, use
-       colors only when the output is to the terminal. Defaults to false.
+       Whether to use ANSI escape sequences to add color to patches.
+       If this is set to `always`, linkgit:git-diff[1],
+       linkgit:git-log[1], and linkgit:git-show[1] will use color
+       for all patches.  If it is set to `true` or `auto`, those
+       commands will only use color when output is to the terminal.
+       Defaults to false.
++
+This does not affect linkgit:git-format-patch[1] nor the
+'git-diff-{asterisk}' plumbing commands.  Can be overridden on the
+command line with the `--color[=<when>]` option.
 
 color.diff.<slot>::
        Use customized color for diff colorization.  `<slot>` specifies
@@ -796,11 +803,15 @@ color.status.<slot>::
        color.branch.<slot>.
 
 color.ui::
-       When set to `always`, always use colors in all git commands which
-       are capable of colored output. When false (or `never`), never. When
-       set to `true` or `auto`, use colors only when the output is to the
-       terminal. When more specific variables of color.* are set, they always
-       take precedence over this setting. Defaults to false.
+       This variable determines the default value for variables such
+       as `color.diff` and `color.grep` that control the use of color
+       per command family. Its scope will expand as more commands learn
+       configuration to set a default for the `--color` option.  Set it
+       to `always` if you want all output not intended for machine
+       consumption to use color, to `true` or `auto` if you want such
+       output to use color when written to the terminal, or to `false` or
+       `never` if you prefer git commands not to use color unless enabled
+       explicitly with some other configuration or the `--color` option.
 
 commit.status::
        A boolean to enable/disable inclusion of status information in the
@@ -812,68 +823,7 @@ commit.template::
        "{tilde}/" is expanded to the value of `$HOME` and "{tilde}user/" to the
        specified user's home directory.
 
-diff.autorefreshindex::
-       When using 'git diff' to compare with work tree
-       files, do not consider stat-only change as changed.
-       Instead, silently run `git update-index --refresh` to
-       update the cached stat information for paths whose
-       contents in the work tree match the contents in the
-       index.  This option defaults to true.  Note that this
-       affects only 'git diff' Porcelain, and not lower level
-       'diff' commands such as 'git diff-files'.
-
-diff.external::
-       If this config variable is set, diff generation is not
-       performed using the internal diff machinery, but using the
-       given command.  Can be overridden with the `GIT_EXTERNAL_DIFF'
-       environment variable.  The command is called with parameters
-       as described under "git Diffs" in linkgit:git[1].  Note: if
-       you want to use an external diff program only on a subset of
-       your files, you might want to use linkgit:gitattributes[5] instead.
-
-diff.mnemonicprefix::
-       If set, 'git diff' uses a prefix pair that is different from the
-       standard "a/" and "b/" depending on what is being compared.  When
-       this configuration is in effect, reverse diff output also swaps
-       the order of the prefixes:
-`git diff`;;
-       compares the (i)ndex and the (w)ork tree;
-`git diff HEAD`;;
-        compares a (c)ommit and the (w)ork tree;
-`git diff --cached`;;
-       compares a (c)ommit and the (i)ndex;
-`git diff HEAD:file1 file2`;;
-       compares an (o)bject and a (w)ork tree entity;
-`git diff --no-index a b`;;
-       compares two non-git things (1) and (2).
-
-diff.noprefix::
-       If set, 'git diff' does not show any source or destination prefix.
-
-diff.renameLimit::
-       The number of files to consider when performing the copy/rename
-       detection; equivalent to the 'git diff' option '-l'.
-
-diff.renames::
-       Tells git to detect renames.  If set to any boolean value, it
-       will enable basic rename detection.  If set to "copies" or
-       "copy", it will detect copies, as well.
-
-diff.ignoreSubmodules::
-       Sets the default value of --ignore-submodules. Note that this
-       affects only 'git diff' Porcelain, and not lower level 'diff'
-       commands such as 'git diff-files'. 'git checkout' also honors
-       this setting when reporting uncommitted changes.
-
-diff.suppressBlankEmpty::
-       A boolean to inhibit the standard behavior of printing a space
-       before each empty output line. Defaults to false.
-
-diff.tool::
-       Controls which diff tool is used.  `diff.tool` overrides
-       `merge.tool` when used by linkgit:git-difftool[1] and has
-       the same valid values as `merge.tool` minus "tortoisemerge"
-       and plus "kompare".
+include::diff-config.txt[]
 
 difftool.<tool>.path::
        Override the path for the given tool.  This is useful in case
@@ -897,9 +847,13 @@ diff.wordRegex::
        characters are *ignorable* whitespace.
 
 fetch.recurseSubmodules::
-       A boolean value which changes the behavior for fetch and pull, the
-       default is to not recursively fetch populated submodules unless
-       configured otherwise.
+       This option can be either set to a boolean value or to 'on-demand'.
+       Setting it to a boolean changes the behavior of fetch and pull to
+       unconditionally recurse into submodules when set to true or to not
+       recurse at all when set to false. When set to 'on-demand' (the default
+       value), fetch and pull will only recurse into a populated submodule
+       when its superproject retrieves a commit that updates the submodule's
+       reference.
 
 fetch.unpackLimit::
        If the number of objects fetched over the git native
@@ -1108,6 +1062,12 @@ All gitcvs variables except for 'gitcvs.usecrlfattr' and
 is one of "ext" and "pserver") to make them apply only for the given
 access method.
 
+grep.lineNumber::
+       If set to true, enable '-n' option by default.
+
+grep.extendedRegexp::
+       If set to true, enable '--extended-regexp' option by default.
+
 gui.commitmsgwidth::
        Defines how wide the commit message window is in the
        linkgit:git-gui[1]. "75" is the default.
@@ -1349,8 +1309,9 @@ instaweb.port::
 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 only by the `\--patch` mode of
-       linkgit:git-add[1].  Note that this setting is silently
+       Currently this is used by the `\--patch` mode of
+       linkgit:git-add[1], linkgit:git-reset[1], linkgit:git-stash[1] and
+       linkgit:git-checkout[1]. Note that this setting is silently
        ignored if portable keystroke input is not available.
 
 log.date::
@@ -1827,7 +1788,7 @@ submodule.<name>.update::
        linkgit:git-submodule[1] and linkgit:gitmodules[5] for details.
 
 submodule.<name>.fetchRecurseSubmodules::
-       This option can be used to enable/disable recursive fetching of this
+       This option can be used to control recursive fetching of this
        submodule. It can be overridden by using the --[no-]recurse-submodules
        command line option to "git fetch" and "git pull".
        This setting will override that from in the linkgit:gitmodules[5]