From: Nguyễn Thái Ngọc Duy Date: Sat, 27 Oct 2018 06:22:51 +0000 (+0200) Subject: config.txt: move diff-config.txt to config/ X-Git-Tag: v2.20.0-rc0~59^2~60 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/fa922d74c525a8f66584e50b60b8dfc3cd237a90 config.txt: move diff-config.txt to config/ Signed-off-by: Nguyễn Thái Ngọc Duy Signed-off-by: Junio C Hamano --- diff --git a/Documentation/config.txt b/Documentation/config.txt index 83f5ce9056..5693ce7654 100644 --- a/Documentation/config.txt +++ b/Documentation/config.txt @@ -319,7 +319,7 @@ include::config/credential.txt[] include::config/completion.txt[] -include::diff-config.txt[] +include::config/diff.txt[] difftool..path:: Override the path for the given tool. This is useful in case diff --git a/Documentation/config/diff.txt b/Documentation/config/diff.txt new file mode 100644 index 0000000000..e4db77bc82 --- /dev/null +++ b/Documentation/config/diff.txt @@ -0,0 +1,222 @@ +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=`). 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. +;; + 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 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..command:: + The custom diff driver command. See linkgit:gitattributes[5] + for details. + +diff..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..binary:: + Set this option to true to make the diff driver treat files as + binary. See linkgit:gitattributes[5] for details. + +diff..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..wordRegex:: + The regular expression that the diff driver should use to + split words in a line. See linkgit:gitattributes[5] for + details. + +diff..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..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=` + overrides this setting. + +diff.colorMoved:: + If set to either a valid `` 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 `` how spaces are treated + for details of valid modes see '--color-moved-ws' in linkgit:git-diff[1]. diff --git a/Documentation/diff-config.txt b/Documentation/diff-config.txt deleted file mode 100644 index 85bca83c30..0000000000 --- a/Documentation/diff-config.txt +++ /dev/null @@ -1,222 +0,0 @@ -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=`). 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. -;; - 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 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..command:: - The custom diff driver command. See linkgit:gitattributes[5] - for details. - -diff..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..binary:: - Set this option to true to make the diff driver treat files as - binary. See linkgit:gitattributes[5] for details. - -diff..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..wordRegex:: - The regular expression that the diff driver should use to - split words in a line. See linkgit:gitattributes[5] for - details. - -diff..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..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=` - overrides this setting. - -diff.colorMoved:: - If set to either a valid `` 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 `` how spaces are treated - for details of valid modes see '--color-moved-ws' in linkgit:git-diff[1].