> If you run "git diff <filename>" after cloning, I expect that no temporary > files are involved, _unless_ you have some settings that force "git diff" > not to use the internal diff. Do you use GIT_EXTERNAL_DIFF? Do you use > "textconv" attribute? What external program do you invoke from these > mechanisms, and what does it expect to see as its input? As I prefer graphical diff tools, I do not use internal diff, but Beyond Compare [1]. In order to do that I have configured diff.external to point to a wrapper script that contains the following lines: ---8<--- #!/bin/bash # diff is called with 7 parameters: # path old-file old-hex old-mode new-file new-hex new-mode "C:/Program Files/Beyond Compare 3/BCompare.exe" "$2" "$5" | cat ---8<--- As Beyond Compare is a stand-alone diff / merge tool, it expects to be working on regular files in the file system. And to be hostest, I did not know about the "textconv" attribute until now. > The discussion in the last few messages in this thread speculates that the > external programs are more likely to expect representations suitable in > the work tree, aka "smudged", than "clean" one. It would be nice to get a > datapoint from you as the original reporter to confirm or refute that > speculation. I agree to the speculations. IMHO calling an external diff tool with two revisions of a file should result in the same as e.g. checking out the two revisions in two different working trees and then launching the user's external diff tool on the two working tree files. [1] http://www.scootersoftware.com/ -- Sebastian Schuberth -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html