Setup 'git diff' for special file types

diff, git

Solution

Okay, what I was looking for was the following in my `.gitconfig`:

[diff "excel"]
    command = excel_cmp.bat

Problem

I want to manage Excel files in one of my repositories. Diffing them is a problem (they are binary files). However, there is a nice tool for diffing them: https://github.com/na-ka-na/ExcelCompare I wanted to set it up using `.gitattributes` ``` *.xls diff=excel *.xlsx diff=excel ``` And in the `.git/config`: ``` [diff "excel"] textconv = excel_cmp.bat ``` The command `excel_cmp.bat file1.xls file2.xls` works very well. However, the setup I use above seems to try to convert the excel files to text using `excel_cmp.bat` and then diffs the text output. How do I setup the diff tool to diff two files - and not to convert to text first and then diff the text output? EDIT: In the above setting, what git seems to do is to diff the output of `excel_cmp.bat <file1>` and `excel_cmp.bat <file2>`. But what I want is `excel_cmp.bat <file1> <file2>`. How can I set this up?

Original source