fix(git): shell-скрипты уезжали в индекс с CRLF и ломались на Linux
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>
This commit is contained in:
parent
290e23070e
commit
1d5e44ab3c
1 changed files with 23 additions and 0 deletions
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
# Переводы строк фиксируются намеренно.
|
||||
#
|
||||
# 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
|
||||
Loading…
Reference in a new issue