core.autocrlf=true и отсутствие .gitattributes приводили к тому, что install-linux.sh хранился с CRLF. На Linux это даёт "$'\r': command not found", а самораспаковывающийся установщик, собранный после checkout на Windows, ломался бы целиком: пролог обрезает себя по строке-маркеру, а маркер с \r не совпадает. Добавлен .gitattributes: *.sh/*.py/*.yaml только LF, *.ps1/*.bat только CRLF, *.exe/*.ico/*.png помечены binary, чтобы нормализация их не трогала. Индекс перенормализован. Проверено: в индексе все четыре shell-скрипта с LF, заголовок MZ у launcher/*.exe цел, пересобранный dist/hermes-hub-setup.sh не содержит CR ни в прологе, ни в распакованном install-linux.sh. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
23 lines
859 B
Text
23 lines
859 B
Text
# Переводы строк фиксируются намеренно.
|
||
#
|
||
# core.autocrlf=true на машинах разработки записывал shell-скрипты в индекс с
|
||
# CRLF. На Linux такой файл даёт "$'\r': command not found", а собранный из
|
||
# него самораспаковывающийся установщик ломается целиком. Поэтому всё, что
|
||
# исполняется на Linux, хранится и выдаётся только с LF.
|
||
* text=auto
|
||
|
||
*.sh text eol=lf
|
||
*.bash text eol=lf
|
||
*.py text eol=lf
|
||
*.yaml text eol=lf
|
||
*.yml text eol=lf
|
||
|
||
# Виндовые скрипты остаются с CRLF.
|
||
*.ps1 text eol=crlf
|
||
*.bat text eol=crlf
|
||
*.cmd text eol=crlf
|
||
|
||
# Бинарники не трогать.
|
||
*.exe binary
|
||
*.ico binary
|
||
*.png binary
|