Araxis Merge不尊重.gitattributes首选项

时间:2014-02-11 02:25:59

标签: git diff binaryfiles git-diff araxis

我已将path/to/compiled/file.css -diff添加到我的.gitattributes文件夹中。

git diff --no-ext-diff尊重首选项并让我知道二进制文件已更改,但git diff(配置为使用Araxis Merge作为gui diff)不会。当Araxis点击已编译的css文件时,我会得到一个旋转的沙滩球。

如何让Araxis尊重我的意愿?

1 个答案:

答案 0 :(得分:1)

Git通过调用外部工具命令与外部工具进行通信:

$command $LOCAL $REMOTE

因此,即使git知道它不应该尝试在给定文件上计算差异,也无法将其传达给外部工具。

外部工具只能通过查看其扩展名来猜测哪些文件是二进制文件。并且,在这种情况下,“css”不会被识别为二​​进制。

因此,无法通知外部工具忽略css文件。那么,我们需要的是从传递给外部工具的文件中排除文件的方法

您可以通过设置自定义无操作差异驱动程序来实现:

$ git config diff.noop.command true      # if "true" is a bash builtin in your system
or
$ git config.diff.noop.command /bin/true # if "true" is a real binary in your system

然后将该自定义驱动程序设置为与您的文件一起使用:

(at .gitattributes)
/path/to/compiled/file.css diff=noop

应该这样做。