]>
Commit | Line | Data |
---|---|---|
da0005b8 | 1 | diff.autoRefreshIndex:: |
19299a84 RR |
2 | When using 'git diff' to compare with work tree |
3 | files, do not consider stat-only change as changed. | |
4 | Instead, silently run `git update-index --refresh` to | |
5 | update the cached stat information for paths whose | |
6 | contents in the work tree match the contents in the | |
7 | index. This option defaults to true. Note that this | |
8 | affects only 'git diff' Porcelain, and not lower level | |
9 | 'diff' commands such as 'git diff-files'. | |
10 | ||
2d174951 JH |
11 | diff.dirstat:: |
12 | A comma separated list of `--dirstat` parameters specifying the | |
ef39d22f | 13 | default behavior of the `--dirstat` option to linkgit:git-diff[1] |
2d174951 JH |
14 | and friends. The defaults can be overridden on the command line |
15 | (using `--dirstat=<param1,param2,...>`). The fallback defaults | |
16 | (when not changed by `diff.dirstat`) are `changes,noncumulative,3`. | |
17 | The following parameters are available: | |
18 | + | |
19 | -- | |
20 | `changes`;; | |
21 | Compute the dirstat numbers by counting the lines that have been | |
22 | removed from the source, or added to the destination. This ignores | |
23 | the amount of pure code movements within a file. In other words, | |
24 | rearranging lines in a file is not counted as much as other changes. | |
25 | This is the default behavior when no parameter is given. | |
1c57a627 JH |
26 | `lines`;; |
27 | Compute the dirstat numbers by doing the regular line-based diff | |
28 | analysis, and summing the removed/added line counts. (For binary | |
29 | files, count 64-byte chunks instead, since binary files have no | |
30 | natural concept of lines). This is a more expensive `--dirstat` | |
31 | behavior than the `changes` behavior, but it does count rearranged | |
32 | lines within a file as much as other changes. The resulting output | |
33 | is consistent with what you get from the other `--*stat` options. | |
2d174951 JH |
34 | `files`;; |
35 | Compute the dirstat numbers by counting the number of files changed. | |
36 | Each changed file counts equally in the dirstat analysis. This is | |
37 | the computationally cheapest `--dirstat` behavior, since it does | |
38 | not have to look at the file contents at all. | |
39 | `cumulative`;; | |
40 | Count changes in a child directory for the parent directory as well. | |
41 | Note that when using `cumulative`, the sum of the percentages | |
42 | reported may exceed 100%. The default (non-cumulative) behavior can | |
43 | be specified with the `noncumulative` parameter. | |
44 | <limit>;; | |
45 | An integer parameter specifies a cut-off percent (3% by default). | |
46 | Directories contributing less than this percentage of the changes | |
47 | are not shown in the output. | |
48 | -- | |
49 | + | |
50 | Example: The following will count changed files, while ignoring | |
51 | directories with less than 10% of the total amount of changed files, | |
52 | and accumulating child directory counts in the parent directories: | |
53 | `files,10,cumulative`. | |
54 | ||
df44483a ZJS |
55 | diff.statGraphWidth:: |
56 | Limit the width of the graph part in --stat output. If set, applies | |
b4ab1980 | 57 | to all commands generating --stat output except format-patch. |
df44483a | 58 | |
6468a4e5 | 59 | diff.context:: |
00704e4b JH |
60 | Generate diffs with <n> lines of context instead of the default |
61 | of 3. This value is overridden by the -U option. | |
6468a4e5 | 62 | |
c4888677 VN |
63 | diff.interHunkContext:: |
64 | Show the context between diff hunks, up to the specified number | |
65 | of lines, thereby fusing the hunks that are close to each other. | |
66 | This value serves as the default for the `--inter-hunk-context` | |
67 | command line option. | |
68 | ||
19299a84 RR |
69 | diff.external:: |
70 | If this config variable is set, diff generation is not | |
71 | performed using the internal diff machinery, but using the | |
72 | given command. Can be overridden with the `GIT_EXTERNAL_DIFF' | |
73 | environment variable. The command is called with parameters | |
74 | as described under "git Diffs" in linkgit:git[1]. Note: if | |
75 | you want to use an external diff program only on a subset of | |
8d75a1d1 | 76 | your files, you might want to use linkgit:gitattributes[5] instead. |
19299a84 RR |
77 | |
78 | diff.ignoreSubmodules:: | |
79 | Sets the default value of --ignore-submodules. Note that this | |
80 | affects only 'git diff' Porcelain, and not lower level 'diff' | |
d787d311 NTND |
81 | commands such as 'git diff-files'. 'git checkout' |
82 | and 'git switch' also honor | |
bb58b696 JL |
83 | this setting when reporting uncommitted changes. Setting it to |
84 | 'all' disables the submodule summary normally shown by 'git commit' | |
ae9f6311 | 85 | and 'git status' when `status.submoduleSummary` is set unless it is |
06ab60c0 | 86 | overridden by using the --ignore-submodules command-line option. |
bb58b696 | 87 | The 'git submodule' commands are not affected by this setting. |
19299a84 | 88 | |
da0005b8 | 89 | diff.mnemonicPrefix:: |
19299a84 RR |
90 | If set, 'git diff' uses a prefix pair that is different from the |
91 | standard "a/" and "b/" depending on what is being compared. When | |
92 | this configuration is in effect, reverse diff output also swaps | |
93 | the order of the prefixes: | |
94 | `git diff`;; | |
95 | compares the (i)ndex and the (w)ork tree; | |
96 | `git diff HEAD`;; | |
97 | compares a (c)ommit and the (w)ork tree; | |
98 | `git diff --cached`;; | |
99 | compares a (c)ommit and the (i)ndex; | |
100 | `git diff HEAD:file1 file2`;; | |
101 | compares an (o)bject and a (w)ork tree entity; | |
102 | `git diff --no-index a b`;; | |
103 | compares two non-git things (1) and (2). | |
104 | ||
105 | diff.noprefix:: | |
106 | If set, 'git diff' does not show any source or destination prefix. | |
107 | ||
da0005b8 | 108 | diff.orderFile:: |
874444b7 RH |
109 | File indicating how to order files within a diff. |
110 | See the '-O' option to linkgit:git-diff[1] for details. | |
1a5fccc0 RH |
111 | If `diff.orderFile` is a relative pathname, it is treated as |
112 | relative to the top of the working tree. | |
6d8940b5 | 113 | |
19299a84 RR |
114 | diff.renameLimit:: |
115 | The number of files to consider when performing the copy/rename | |
a7152e9d BP |
116 | detection; equivalent to the 'git diff' option `-l`. This setting |
117 | has no effect if rename detection is turned off. | |
19299a84 RR |
118 | |
119 | diff.renames:: | |
62df1e68 MM |
120 | Whether and how Git detects renames. If set to "false", |
121 | rename detection is disabled. If set to "true", basic rename | |
122 | detection is enabled. If set to "copies" or "copy", Git will | |
5404c116 | 123 | detect copies, as well. Defaults to true. Note that this |
62df1e68 MM |
124 | affects only 'git diff' Porcelain like linkgit:git-diff[1] and |
125 | linkgit:git-log[1], and not lower level commands such as | |
126 | linkgit:git-diff-files[1]. | |
19299a84 RR |
127 | |
128 | diff.suppressBlankEmpty:: | |
129 | A boolean to inhibit the standard behavior of printing a space | |
130 | before each empty output line. Defaults to false. | |
131 | ||
c47ef57c RR |
132 | diff.submodule:: |
133 | Specify the format in which differences in submodules are | |
fd47ae6a JK |
134 | shown. The "short" format just shows the names of the commits |
135 | at the beginning and end of the range. The "log" format lists | |
136 | the commits in the range like linkgit:git-submodule[1] `summary` | |
137 | does. The "diff" format shows an inline diff of the changed | |
138 | contents of the submodule. Defaults to "short". | |
c47ef57c | 139 | |
22bc70fd RR |
140 | diff.wordRegex:: |
141 | A POSIX Extended Regular Expression used to determine what is a "word" | |
142 | when performing word-by-word difference calculations. Character | |
143 | sequences that match the regular expression are "words", all other | |
144 | characters are *ignorable* whitespace. | |
145 | ||
90b94c26 RR |
146 | diff.<driver>.command:: |
147 | The custom diff driver command. See linkgit:gitattributes[5] | |
148 | for details. | |
149 | ||
150 | diff.<driver>.xfuncname:: | |
151 | The regular expression that the diff driver should use to | |
152 | recognize the hunk header. A built-in pattern may also be used. | |
153 | See linkgit:gitattributes[5] for details. | |
154 | ||
155 | diff.<driver>.binary:: | |
156 | Set this option to true to make the diff driver treat files as | |
157 | binary. See linkgit:gitattributes[5] for details. | |
158 | ||
159 | diff.<driver>.textconv:: | |
160 | The command that the diff driver should call to generate the | |
161 | text-converted version of a file. The result of the | |
162 | conversion is used to generate a human-readable diff. See | |
163 | linkgit:gitattributes[5] for details. | |
164 | ||
da0005b8 | 165 | diff.<driver>.wordRegex:: |
90b94c26 RR |
166 | The regular expression that the diff driver should use to |
167 | split words in a line. See linkgit:gitattributes[5] for | |
168 | details. | |
169 | ||
170 | diff.<driver>.cachetextconv:: | |
171 | Set this option to true to make the diff driver cache the text | |
172 | conversion outputs. See linkgit:gitattributes[5] for details. | |
48672b3d RR |
173 | |
174 | diff.tool:: | |
f35ec546 DA |
175 | Controls which diff tool is used by linkgit:git-difftool[1]. |
176 | This variable overrides the value configured in `merge.tool`. | |
177 | The list below shows the valid built-in values. | |
178 | Any other value is treated as a custom diff tool and requires | |
179 | that a corresponding difftool.<tool>.cmd variable is defined. | |
180 | ||
c217b938 DL |
181 | diff.guitool:: |
182 | Controls which diff tool is used by linkgit:git-difftool[1] when | |
183 | the -g/--gui flag is specified. This variable overrides the value | |
184 | configured in `merge.guitool`. The list below shows the valid | |
185 | built-in values. Any other value is treated as a custom diff tool | |
186 | and requires that a corresponding difftool.<guitool>.cmd variable | |
187 | is defined. | |
188 | ||
fa922d74 | 189 | include::../mergetools-diff.txt[] |
07ab4dec | 190 | |
433860f3 | 191 | diff.indentHeuristic:: |
3cde4e02 JH |
192 | Set this option to `true` to enable experimental heuristics |
193 | that shift diff hunk boundaries to make patches easier to read. | |
5580b271 | 194 | |
07ab4dec MP |
195 | diff.algorithm:: |
196 | Choose a diff algorithm. The variants are as follows: | |
197 | + | |
198 | -- | |
199 | `default`, `myers`;; | |
200 | The basic greedy diff algorithm. Currently, this is the default. | |
201 | `minimal`;; | |
202 | Spend extra time to make sure the smallest possible diff is | |
203 | produced. | |
204 | `patience`;; | |
205 | Use "patience diff" algorithm when generating patches. | |
206 | `histogram`;; | |
207 | This algorithm extends the patience algorithm to "support | |
208 | low-occurrence common elements". | |
209 | -- | |
210 | + | |
a17505f2 JH |
211 | |
212 | diff.wsErrorHighlight:: | |
c0bb6d9c AH |
213 | Highlight whitespace errors in the `context`, `old` or `new` |
214 | lines of the diff. Multiple values are separated by comma, | |
215 | `none` resets previous values, `default` reset the list to | |
216 | `new` and `all` is a shorthand for `old,new,context`. The | |
217 | whitespace errors are colored with `color.diff.whitespace`. | |
218 | The command line option `--ws-error-highlight=<kind>` | |
219 | overrides this setting. | |
eb90ea79 NTND |
220 | |
221 | diff.colorMoved:: | |
222 | If set to either a valid `<mode>` or a true value, moved lines | |
223 | in a diff are colored differently, for details of valid modes | |
224 | see '--color-moved' in linkgit:git-diff[1]. If simply set to | |
225 | true the default color mode will be used. When set to false, | |
226 | moved lines are not colored. | |
227 | ||
228 | diff.colorMovedWS:: | |
229 | When moved lines are colored using e.g. the `diff.colorMoved` setting, | |
230 | this option controls the `<mode>` how spaces are treated | |
231 | for details of valid modes see '--color-moved-ws' in linkgit:git-diff[1]. |