Araxis Merge не уважает предпочтения.gitattributes

Я добавил path/to/compiled/file.css -diff к моему .gitattributes папка.

git diff --no-ext-diff уважает предпочтения и просто дает мне знать, что бинарный файл был изменен, но git diff (настроен на использование Araxis Merge в качестве графического интерфейса) не. Когда Araxis попадает в скомпилированный файл CSS, я получаю вращающийся пляжный мяч.

Есть идеи как заставить Араксиса уважать мои желания?

1 ответ

Решение

Git связывается с внешним инструментом, вызывая команду внешнего инструмента:

$command $LOCAL $REMOTE

Таким образом, даже если git знает, что он не должен пытаться вычислить diff для данного файла, он не может сообщить об этом внешнему инструменту.

Внешний инструмент может только угадать, какие файлы являются двоичными, посмотрев на их расширение. И, в этом случае, "css" не будет распознаваться как двоичный.

Таким образом, нет никакого способа дать сигнал внешнему инструменту игнорировать файл CSS. В таком случае нам потребуется способ исключить файл из файлов, переданных во внешний инструмент.

Вы можете сделать это, установив пользовательский драйвер no-op diff:

$ 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

Это должно сделать это.

Другие вопросы по тегам