git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 2/3] Documentation: Add diff.<driver>.* to config

From
Michael J Gruber <git@drmicha.warpmail.net>
Date
Apr 4, 2011, 08:54 UTC
Message-ID
<4D998736.2080901@drmicha.warpmail.net>
In-Reply-To
<1301840722-24344-3-git-send-email-artagnon@gmail.com>
Ramkumar Ramachandra venit, vidit, dixit 03.04.2011 16:25:
Show 156 quoted lines
> Although the gitattributes page contains comprehensive information
> about these configuration options, they should be included in the
> config documentation for completeness.  Also, move out the diff.*
> configuration options into a dedicated diff-config.txt.
> 
> Helped-by: Jakub Narebski <jnareb@gmail.com>
> Helped-by: Michael J Gruber <git@drmicha.warpmail.net>
> Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
> ---
>  Documentation/config.txt      |   63 +----------------------------
>  Documentation/diff-config.txt |   91 +++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 92 insertions(+), 62 deletions(-)
>  create mode 100644 Documentation/diff-config.txt
> 
> diff --git a/Documentation/config.txt b/Documentation/config.txt
> index 711072c..cfeef63 100644
> --- a/Documentation/config.txt
> +++ b/Documentation/config.txt
> @@ -812,68 +812,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
> diff --git a/Documentation/diff-config.txt b/Documentation/diff-config.txt
> new file mode 100644
> index 0000000..8c1732f
> --- /dev/null
> +++ b/Documentation/diff-config.txt
> @@ -0,0 +1,91 @@
> +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.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.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.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".
That one would make more sense right before the diftool.* options.
> +
> +diff.<driver>.command::
> +	Defines the command that implements the custom diff driver.
> +	See linkgit:gitattributes[5] for details.
Why not:
The custom diff driver command.
Show 5 quoted lines
> +
> +diff.<driver>.xfuncname::
> +	Defines the regular expression that the custom diff driver
> +	should use to recognize the hunk header.  A built-in pattern
> +	may also be used.  See linkgit:gitattributes[5] for details.
The regular...
> +
> +diff.<driver>.binary::
> +	Set this option to true to make the custom diff driver treat
> +	files as binary.  See linkgit:gitattributes[5] for details.

This has nothing to do with the diff driver's operation. It is about how git treats the result (the output from the diff driver):

Set to true if git should treat the output of the custom diff driver as binary.

Show 6 quoted lines
> +
> +diff.<driver>.textconv::
> +	Defines the command that the custom diff driver should call to
> +	generate the text-converted version of a binary file.  The
> +	result of the conversion is used to generate a human-readable
> +	diff.  See linkgit:gitattributes[5] for details.
No, please! You don't need a custom diff driver for textconv.
The command which git should call to...
Show 10 quoted lines
> +
> +diff.<driver>.wordregex::
> +	Defines the regular expression that the custom 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 custom diff driver cache
> +	the text conversion outputs.  See linkgit:gitattributes[5] for
> +	details.

Again, both are independent of a custom diff driver. Maybe even <driver> is misleading here, I dunno. By "custom diff driver", I mean the thing you specify with "diff.<whatever>.command", and this is orthogonal (unrelated, can be combined with) textconc etc.

Michael
Previous: Ramkumar RamachandraNext: Junio C Hamano
Message 10 of 33 in “Documentation: Document diff.<tool>.* and filter.<driver>.* in config”
  1. Documentation: Document diff.<tool>.* and filter.<driver>.* in configRamkumar Ramachandra, Apr 1, 2011
  2. Jakub NarebskiApr 1, 2011
  3. Documentation: Document diff.<tool>.* and filter.<driver>.* in configRamkumar Ramachandra, Apr 1, 2011
  4. Jakub NarebskiApr 1, 2011
  5. Michael J GruberApr 1, 2011
  6. 0/3 Document diff and filter drivers in configRamkumar Ramachandra, Apr 3, 2011
  7. 1/3 Documentation: Add filter.<driver>.* to configRamkumar Ramachandra, Apr 3, 2011
  8. Michael J GruberApr 4, 2011
  9. 2/3 Documentation: Add diff.<driver>.* to configRamkumar Ramachandra, Apr 3, 2011
  10. Michael J GruberApr 4, 2011
  11. Junio C HamanoApr 4, 2011
  12. 3/3 Documentation: Allow custom diff tools to be specified in 'diff.tool'Ramkumar Ramachandra, Apr 3, 2011
  13. Michael J GruberApr 4, 2011
  14. 0/4 Document diff and filter drivers in configRamkumar Ramachandra, Apr 6, 2011
  15. 1/4 Documentation: Add filter.<driver>.* to configRamkumar Ramachandra, Apr 6, 2011
  16. Michael J GruberApr 6, 2011
  17. Ramkumar RamachandraApr 6, 2011
  18. Junio C HamanoApr 6, 2011
  19. Ramkumar RamachandraApr 6, 2011
  20. Michael J GruberApr 7, 2011
  21. Ramkumar RamachandraApr 7, 2011
  22. 2/4 Documentation: Add diff.<driver>.* to configRamkumar Ramachandra, Apr 6, 2011
  23. 3/4 Documentation: Allow custom diff tools to be specified in 'diff.tool'Ramkumar Ramachandra, Apr 6, 2011
  24. 4/4 Documentation: Minor language improvements to merge-configRamkumar Ramachandra, Apr 6, 2011
  25. 0/4 Document diff and filter drivers in configRamkumar Ramachandra, Apr 6, 2011
  26. 1/4 Documentation: Add filter.<driver>.* to configRamkumar Ramachandra, Apr 6, 2011
  27. 2/4 Documentation: Add diff.<driver>.* to configRamkumar Ramachandra, Apr 6, 2011
  28. Junio C HamanoApr 6, 2011
  29. Ramkumar RamachandraApr 7, 2011
  30. 3/4 Documentation: Allow custom diff tools to be specified in 'diff.tool'Ramkumar Ramachandra, Apr 6, 2011
  31. 4/4 Documentation: Minor language improvements to merge-configRamkumar Ramachandra, Apr 6, 2011
  32. Michael J GruberApr 7, 2011
  33. Michael J GruberApr 7, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.