Git проверяет определенный файл только с окончанием строки LF в Windows, несмотря на core.autocrlf = true - PullRequest
2 голосов
/ 24 сентября 2019

У нас есть определенный исходный файл (java) в нашем git-репо, который вызывает у нас проблемы с окончанием строки.

Все наши разработчики работают под Windows, в то время как наш сервер сборки работает под управлением Linux.Файл был проверен с CRLF в некоторый момент в прошлом.Недавно мы внедрили Spotless и google-java-format в наш процесс сборки, чтобы применить стиль кода, и он не удался при запуске на нашем сервере сборки.

Чтобы это исправить, я преобразовал окончания строк в LF на моем Windows-боксе и зафиксировалфайл.Теперь это прекрасно работает на нашем сервере сборки, но теперь каждый раз, когда мы проверяем файл в Windows, он проверяет с окончанием строки LF и не проходит проверку Spotless.

У меня есть core.autocrlf=true в моем git config (какпроверено git config --list).Каждый другой файл из того же репо, который я извлекаю, выходит как CRLF в Windows и правильно конвертируется обратно в LF в репо.Это только тот файл, который вызывает проблемы.Это влияет на всю нашу команду.

Я попытался снова удалить и проверить файл, даже удалив локальное хранилище и клонировав пульт с нуля - этот файл всегда отображается как LF в Windows.Я пробовал различные настройки в .gitattributes, такие как *.java text eol=lf и запуск git add --renormalize, но проблема с этим файлом сохраняется.Любые идеи, почему этот конкретный файл имеет эту проблему и как ее исправить?

1 Ответ

1 голос
/ 25 сентября 2019

Оказывается, в исходном файле было несколько сообщений FIX в виде строковых литералов, включая разделители сообщений SOH (Unicode 0x0001).Хотя я считаю, что это действительно UTF-8, замена их на escape-коды, похоже, решает проблемы.Вероятно, это ошибка в обнаружении текста / двоичных файлов в git, из-за которой они всегда считали их двоичными файлами и игнорировали core.autocrlf.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...