Re: [PATCH] Document the textconv filter.
From: Matthieu Moy <hidden>
Date: 2016-06-15 22:45:25
Johannes Sixt [off-list ref] writes:
On Sonntag, 28. September 2008, Matthieu Moy wrote:quoted
+Converting files to text before a diff +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The attribute `textconv` affects 'git diff' in a way similar to the +`diff` attribute, but with `textconv`, the user provides only a way to +convert the file into text, and git takes care of doing the diff as +usual (i.e. other options of 'git diff' such as '--color' remain +available). + +The value of `textconv` must be a string, which is the textconv +driver.Wouldn't it be much more useful to have git parse stdout of the custom diff tool in order to colorize it?
That would do it for --color, but not --color-words for example. The problem with the GIT_EXTERNAL_DIFF is that the diff tool has to re-implement everything that "git diff" already do. Take my opendocument diff script : http://www-verimag.imag.fr/~moy/opendocument/git-oodiff That's 77 lines of code as a wrapper to odt2txt and diff. With the "textconv" attribute, it's one line in .gitattributes, and two in ~/.gitconfig.
Of course, this would mean that external diff tools are more complicated and their stdout has to conform mostly to the git diff syntax. But:quoted
+To tell git to use the `exif` filter for jpeg images, use: + +---------------------------------------------------------------- +*.jpg textconv=exif +----------------------------------------------------------------In this very example it would be possible that the external diff driver shows the differences in the image in a window and also produces EXIF information on stdout.
Yes, but that's really a specific example. Having git colorize the diff would be a little extra, but that wouldn't reduce the effort to write the external diff tool itself, and doesn't give you _all_ of git-diff, just --color. -- Matthieu