Этого можно добиться, используя функцию «textconv», используя инструмент fold
в качестве фильтра.
Его необходимо настроить в два этапа.
Определить драйвер
Это можно сделать для репозитория, запустив
git config diff.DRIVER.textconv 'fold -s'
или отредактировав .git/config
, чтобы он содержал
[diff "DRIVER"]
textconv = fold -s
или глобально
git config --global diff.DRIVER.textconv 'fold -s'
При необходимости инструмент fold
можно заменить более интеллектуальными фильтрами с учетом языка.Опция -s
делает сгиб в пробельных символах.
В Windows утилита сгиба может использовать окончания строки DOS, которые могут конфликтовать с вашими настройками для хранилища, что приводит к ложным ^M
символам в разнице.,Это можно исправить, используя вместо этого
sh -c 'fold "$0" | dos2unix'
Оболочка sh
требуется, поскольку протокол textconv ожидает, что указанная команда примет одно имя файла в качестве аргумента, и выдаст свой вывод на STDOUT.
Настройка .gitattributes
Настройка файла .gitattributes
, содержащего
PATTERN diff=DRIVER
Здесь DRIVER
- произвольное имя драйвера и PATTERN
- шаблон подстановки, соответствующийфайлы, к которым он должен применяться, например, *
для «всех файлов» или *.EXT
для файлов с расширением .EXT
.
Пример
Например, для запуска файлов * .tex через фильтр "fold" с помощью "dos2unix":
=== .gitattributes ===
*.tex diff=tex
=== .git/config ===
[diff "tex"]
textconv = sh -c 'fold "$0" | dos2unix'