270 lines
11 KiB
Plaintext
270 lines
11 KiB
Plaintext
`diff.autoRefreshIndex`::
|
|
When using `git diff` to compare with work tree
|
|
files, do not consider stat-only changes 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`::
|
|
ifdef::git-diff[]
|
|
A comma separated list of `--dirstat` parameters specifying the
|
|
default behavior of the `--dirstat` option to `git diff` and friends.
|
|
endif::git-diff[]
|
|
ifndef::git-diff[]
|
|
A comma separated list of `--dirstat` parameters specifying the
|
|
default behavior of the `--dirstat` option to linkgit:git-diff[1]
|
|
and friends.
|
|
endif::git-diff[]
|
|
The defaults can be overridden on the command line
|
|
(using `--dirstat=<param>,...`). 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.statNameWidth`::
|
|
Limit the width of the filename part in `--stat` output. If set, applies
|
|
to all commands generating `--stat` output except `format-patch`.
|
|
|
|
`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.trustExitCode`::
|
|
If this boolean value is set to `true` then the
|
|
`diff.external` command is expected to return exit code
|
|
0 if it considers the input files to be equal or 1 if it
|
|
considers them to be different, like `diff`(1).
|
|
If it is set to `false`, which is the default, then the command
|
|
is expected to return exit code `0` regardless of equality.
|
|
Any other exit code causes Git to report a fatal error.
|
|
|
|
`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`
|
|
and `git switch` also honor
|
|
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.
|
|
By default this is set to untracked so that any untracked
|
|
submodules are ignored.
|
|
|
|
`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 _<a>_ and _<b>_.
|
|
|
|
`diff.noPrefix`::
|
|
If set, `git diff` does not show any source or destination prefix.
|
|
|
|
`diff.srcPrefix`::
|
|
If set, `git diff` uses this source prefix. Defaults to `a/`.
|
|
|
|
`diff.dstPrefix`::
|
|
If set, `git diff` uses this destination prefix. Defaults to `b/`.
|
|
|
|
`diff.relative`::
|
|
If set to `true`, `git diff` does not show changes outside of the directory
|
|
and show pathnames relative to the current directory.
|
|
|
|
`diff.orderFile`::
|
|
File indicating how to order files within a diff.
|
|
ifdef::git-diff[]
|
|
See the `-O` option for details.
|
|
endif::git-diff[]
|
|
ifndef::git-diff[]
|
|
See the `-O` option to linkgit:git-diff[1] for details.
|
|
endif::git-diff[]
|
|
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 in the exhaustive portion of
|
|
copy/rename detection; equivalent to the `git diff` option
|
|
`-l`. If not set, the default value is currently 1000. 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>.trustExitCode`::
|
|
If this boolean value is set to `true` then the
|
|
`diff.<driver>.command` command is expected to return exit code
|
|
0 if it considers the input files to be equal or 1 if it
|
|
considers them to be different, like `diff`(1).
|
|
If it is set to `false`, which is the default, then the command
|
|
is expected to return exit code 0 regardless of equality.
|
|
Any other exit code causes Git to report a fatal error.
|
|
|
|
`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.
|
|
|
|
include::{build_dir}/mergetools-diff.txt[]
|
|
|
|
`diff.indentHeuristic`::
|
|
Set this option to `false` to disable the default 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.
|
|
ifdef::git-diff[]
|
|
For details of valid modes see `--color-moved`.
|
|
endif::git-diff[]
|
|
ifndef::git-diff[]
|
|
For details of valid modes see `--color-moved` in linkgit:git-diff[1].
|
|
endif::git-diff[]
|
|
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].
|