include::config/completion.txt[]
-include::diff-config.txt[]
+include::config/diff.txt[]
difftool.<tool>.path::
Override the path for the given tool. This is useful in case
--- /dev/null
+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.dirstat::
+ A comma separated list of `--dirstat` parameters specifying the
+ default behavior of the `--dirstat` option to linkgit:git-diff[1]`
+ and friends. The defaults can be overridden on the command line
+ (using `--dirstat=<param1,param2,...>`). The fallback defaults
+ (when not changed by `diff.dirstat`) are `changes,noncumulative,3`.
+ The following parameters are available:
++
+--
+`changes`;;
+ Compute the dirstat numbers by counting the lines that have been
+ removed from the source, or added to the destination. This ignores
+ the amount of pure code movements within a file. In other words,
+ rearranging lines in a file is not counted as much as other changes.
+ This is the default behavior when no parameter is given.
+`lines`;;
+ Compute the dirstat numbers by doing the regular line-based diff
+ analysis, and summing the removed/added line counts. (For binary
+ files, count 64-byte chunks instead, since binary files have no
+ natural concept of lines). This is a more expensive `--dirstat`
+ behavior than the `changes` behavior, but it does count rearranged
+ lines within a file as much as other changes. The resulting output
+ is consistent with what you get from the other `--*stat` options.
+`files`;;
+ Compute the dirstat numbers by counting the number of files changed.
+ Each changed file counts equally in the dirstat analysis. This is
+ the computationally cheapest `--dirstat` behavior, since it does
+ not have to look at the file contents at all.
+`cumulative`;;
+ Count changes in a child directory for the parent directory as well.
+ Note that when using `cumulative`, the sum of the percentages
+ reported may exceed 100%. The default (non-cumulative) behavior can
+ be specified with the `noncumulative` parameter.
+<limit>;;
+ An integer parameter specifies a cut-off percent (3% by default).
+ Directories contributing less than this percentage of the changes
+ are not shown in the output.
+--
++
+Example: The following will count changed files, while ignoring
+directories with less than 10% of the total amount of changed files,
+and accumulating child directory counts in the parent directories:
+`files,10,cumulative`.
+
+diff.statGraphWidth::
+ Limit the width of the graph part in --stat output. If set, applies
+ to all commands generating --stat output except format-patch.
+
+diff.context::
+ Generate diffs with <n> lines of context instead of the default
+ of 3. This value is overridden by the -U option.
+
+diff.interHunkContext::
+ Show the context between diff hunks, up to the specified number
+ of lines, thereby fusing the hunks that are close to each other.
+ This value serves as the default for the `--inter-hunk-context`
+ command line option.
+
+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.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. Setting it to
+ 'all' disables the submodule summary normally shown by 'git commit'
+ and 'git status' when `status.submoduleSummary` is set unless it is
+ overridden by using the --ignore-submodules command-line option.
+ The 'git submodule' commands are not affected by this setting.
+
+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.orderFile::
+ File indicating how to order files within a diff.
+ See the '-O' option to linkgit:git-diff[1] for details.
+ If `diff.orderFile` is a relative pathname, it is treated as
+ relative to the top of the working tree.
+
+diff.renameLimit::
+ The number of files to consider when performing the copy/rename
+ detection; equivalent to the 'git diff' option `-l`. This setting
+ has no effect if rename detection is turned off.
+
+diff.renames::
+ Whether and how Git detects renames. If set to "false",
+ rename detection is disabled. If set to "true", basic rename
+ detection is enabled. If set to "copies" or "copy", Git will
+ detect copies, as well. Defaults to true. Note that this
+ affects only 'git diff' Porcelain like linkgit:git-diff[1] and
+ linkgit:git-log[1], and not lower level commands such as
+ linkgit:git-diff-files[1].
+
+diff.suppressBlankEmpty::
+ A boolean to inhibit the standard behavior of printing a space
+ before each empty output line. Defaults to false.
+
+diff.submodule::
+ Specify the format in which differences in submodules are
+ shown. The "short" format just shows the names of the commits
+ at the beginning and end of the range. The "log" format lists
+ the commits in the range like linkgit:git-submodule[1] `summary`
+ does. The "diff" format shows an inline diff of the changed
+ contents of the submodule. Defaults to "short".
+
+diff.wordRegex::
+ A POSIX Extended Regular Expression used to determine what is a "word"
+ when performing word-by-word difference calculations. Character
+ sequences that match the regular expression are "words", all other
+ characters are *ignorable* whitespace.
+
+diff.<driver>.command::
+ The custom diff driver command. See linkgit:gitattributes[5]
+ for details.
+
+diff.<driver>.xfuncname::
+ The regular expression that the diff driver should use to
+ recognize the hunk header. A built-in pattern may also be used.
+ See linkgit:gitattributes[5] for details.
+
+diff.<driver>.binary::
+ Set this option to true to make the diff driver treat files as
+ binary. See linkgit:gitattributes[5] for details.
+
+diff.<driver>.textconv::
+ The command that the diff driver should call to generate the
+ text-converted version of a file. The result of the
+ conversion is used to generate a human-readable diff. See
+ linkgit:gitattributes[5] for details.
+
+diff.<driver>.wordRegex::
+ The regular expression that the diff driver should use to
+ split words in a line. See linkgit:gitattributes[5] for
+ details.
+
+diff.<driver>.cachetextconv::
+ Set this option to true to make the diff driver cache the text
+ conversion outputs. See linkgit:gitattributes[5] for details.
+
+diff.tool::
+ Controls which diff tool is used by linkgit:git-difftool[1].
+ This variable overrides the value configured in `merge.tool`.
+ The list below shows the valid built-in values.
+ Any other value is treated as a custom diff tool and requires
+ that a corresponding difftool.<tool>.cmd variable is defined.
+
+include::../mergetools-diff.txt[]
+
+diff.indentHeuristic::
+ Set this option to `true` to enable experimental heuristics
+ that shift diff hunk boundaries to make patches easier to read.
+
+diff.algorithm::
+ Choose a diff algorithm. The variants are as follows:
++
+--
+`default`, `myers`;;
+ The basic greedy diff algorithm. Currently, this is the default.
+`minimal`;;
+ Spend extra time to make sure the smallest possible diff is
+ produced.
+`patience`;;
+ Use "patience diff" algorithm when generating patches.
+`histogram`;;
+ This algorithm extends the patience algorithm to "support
+ low-occurrence common elements".
+--
++
+
+diff.wsErrorHighlight::
+ Highlight whitespace errors in the `context`, `old` or `new`
+ lines of the diff. Multiple values are separated by comma,
+ `none` resets previous values, `default` reset the list to
+ `new` and `all` is a shorthand for `old,new,context`. The
+ whitespace errors are colored with `color.diff.whitespace`.
+ The command line option `--ws-error-highlight=<kind>`
+ overrides this setting.
+
+diff.colorMoved::
+ If set to either a valid `<mode>` or a true value, moved lines
+ in a diff are colored differently, for details of valid modes
+ see '--color-moved' in linkgit:git-diff[1]. If simply set to
+ true the default color mode will be used. When set to false,
+ moved lines are not colored.
+
+diff.colorMovedWS::
+ When moved lines are colored using e.g. the `diff.colorMoved` setting,
+ this option controls the `<mode>` how spaces are treated
+ for details of valid modes see '--color-moved-ws' in linkgit:git-diff[1].
+++ /dev/null
-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.dirstat::
- A comma separated list of `--dirstat` parameters specifying the
- default behavior of the `--dirstat` option to linkgit:git-diff[1]`
- and friends. The defaults can be overridden on the command line
- (using `--dirstat=<param1,param2,...>`). The fallback defaults
- (when not changed by `diff.dirstat`) are `changes,noncumulative,3`.
- The following parameters are available:
-+
---
-`changes`;;
- Compute the dirstat numbers by counting the lines that have been
- removed from the source, or added to the destination. This ignores
- the amount of pure code movements within a file. In other words,
- rearranging lines in a file is not counted as much as other changes.
- This is the default behavior when no parameter is given.
-`lines`;;
- Compute the dirstat numbers by doing the regular line-based diff
- analysis, and summing the removed/added line counts. (For binary
- files, count 64-byte chunks instead, since binary files have no
- natural concept of lines). This is a more expensive `--dirstat`
- behavior than the `changes` behavior, but it does count rearranged
- lines within a file as much as other changes. The resulting output
- is consistent with what you get from the other `--*stat` options.
-`files`;;
- Compute the dirstat numbers by counting the number of files changed.
- Each changed file counts equally in the dirstat analysis. This is
- the computationally cheapest `--dirstat` behavior, since it does
- not have to look at the file contents at all.
-`cumulative`;;
- Count changes in a child directory for the parent directory as well.
- Note that when using `cumulative`, the sum of the percentages
- reported may exceed 100%. The default (non-cumulative) behavior can
- be specified with the `noncumulative` parameter.
-<limit>;;
- An integer parameter specifies a cut-off percent (3% by default).
- Directories contributing less than this percentage of the changes
- are not shown in the output.
---
-+
-Example: The following will count changed files, while ignoring
-directories with less than 10% of the total amount of changed files,
-and accumulating child directory counts in the parent directories:
-`files,10,cumulative`.
-
-diff.statGraphWidth::
- Limit the width of the graph part in --stat output. If set, applies
- to all commands generating --stat output except format-patch.
-
-diff.context::
- Generate diffs with <n> lines of context instead of the default
- of 3. This value is overridden by the -U option.
-
-diff.interHunkContext::
- Show the context between diff hunks, up to the specified number
- of lines, thereby fusing the hunks that are close to each other.
- This value serves as the default for the `--inter-hunk-context`
- command line option.
-
-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.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. Setting it to
- 'all' disables the submodule summary normally shown by 'git commit'
- and 'git status' when `status.submoduleSummary` is set unless it is
- overridden by using the --ignore-submodules command-line option.
- The 'git submodule' commands are not affected by this setting.
-
-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.orderFile::
- File indicating how to order files within a diff.
- See the '-O' option to linkgit:git-diff[1] for details.
- If `diff.orderFile` is a relative pathname, it is treated as
- relative to the top of the working tree.
-
-diff.renameLimit::
- The number of files to consider when performing the copy/rename
- detection; equivalent to the 'git diff' option `-l`. This setting
- has no effect if rename detection is turned off.
-
-diff.renames::
- Whether and how Git detects renames. If set to "false",
- rename detection is disabled. If set to "true", basic rename
- detection is enabled. If set to "copies" or "copy", Git will
- detect copies, as well. Defaults to true. Note that this
- affects only 'git diff' Porcelain like linkgit:git-diff[1] and
- linkgit:git-log[1], and not lower level commands such as
- linkgit:git-diff-files[1].
-
-diff.suppressBlankEmpty::
- A boolean to inhibit the standard behavior of printing a space
- before each empty output line. Defaults to false.
-
-diff.submodule::
- Specify the format in which differences in submodules are
- shown. The "short" format just shows the names of the commits
- at the beginning and end of the range. The "log" format lists
- the commits in the range like linkgit:git-submodule[1] `summary`
- does. The "diff" format shows an inline diff of the changed
- contents of the submodule. Defaults to "short".
-
-diff.wordRegex::
- A POSIX Extended Regular Expression used to determine what is a "word"
- when performing word-by-word difference calculations. Character
- sequences that match the regular expression are "words", all other
- characters are *ignorable* whitespace.
-
-diff.<driver>.command::
- The custom diff driver command. See linkgit:gitattributes[5]
- for details.
-
-diff.<driver>.xfuncname::
- The regular expression that the diff driver should use to
- recognize the hunk header. A built-in pattern may also be used.
- See linkgit:gitattributes[5] for details.
-
-diff.<driver>.binary::
- Set this option to true to make the diff driver treat files as
- binary. See linkgit:gitattributes[5] for details.
-
-diff.<driver>.textconv::
- The command that the diff driver should call to generate the
- text-converted version of a file. The result of the
- conversion is used to generate a human-readable diff. See
- linkgit:gitattributes[5] for details.
-
-diff.<driver>.wordRegex::
- The regular expression that the diff driver should use to
- split words in a line. See linkgit:gitattributes[5] for
- details.
-
-diff.<driver>.cachetextconv::
- Set this option to true to make the diff driver cache the text
- conversion outputs. See linkgit:gitattributes[5] for details.
-
-diff.tool::
- Controls which diff tool is used by linkgit:git-difftool[1].
- This variable overrides the value configured in `merge.tool`.
- The list below shows the valid built-in values.
- Any other value is treated as a custom diff tool and requires
- that a corresponding difftool.<tool>.cmd variable is defined.
-
-include::mergetools-diff.txt[]
-
-diff.indentHeuristic::
- Set this option to `true` to enable experimental heuristics
- that shift diff hunk boundaries to make patches easier to read.
-
-diff.algorithm::
- Choose a diff algorithm. The variants are as follows:
-+
---
-`default`, `myers`;;
- The basic greedy diff algorithm. Currently, this is the default.
-`minimal`;;
- Spend extra time to make sure the smallest possible diff is
- produced.
-`patience`;;
- Use "patience diff" algorithm when generating patches.
-`histogram`;;
- This algorithm extends the patience algorithm to "support
- low-occurrence common elements".
---
-+
-
-diff.wsErrorHighlight::
- Highlight whitespace errors in the `context`, `old` or `new`
- lines of the diff. Multiple values are separated by comma,
- `none` resets previous values, `default` reset the list to
- `new` and `all` is a shorthand for `old,new,context`. The
- whitespace errors are colored with `color.diff.whitespace`.
- The command line option `--ws-error-highlight=<kind>`
- overrides this setting.
-
-diff.colorMoved::
- If set to either a valid `<mode>` or a true value, moved lines
- in a diff are colored differently, for details of valid modes
- see '--color-moved' in linkgit:git-diff[1]. If simply set to
- true the default color mode will be used. When set to false,
- moved lines are not colored.
-
-diff.colorMovedWS::
- When moved lines are colored using e.g. the `diff.colorMoved` setting,
- this option controls the `<mode>` how spaces are treated
- for details of valid modes see '--color-moved-ws' in linkgit:git-diff[1].