Не выполняете преобразование git CRLF для файлов .m matlab?

Файлы Matlab .m используют окончания строк Unix LF даже в Windows. Я пытаюсь настроить файл конфигурации git так, чтобы файлы .m не преобразовывались обратно в CRLF, как это было бы с другими обычными текстовыми файлами (т.е. я использую LF в качестве стиля по умолчанию в репозитории). , хотя это Windows).

Можно ли это сделать?

РЕДАКТИРОВАТЬ: из руководства Matlab 2008b. (в разделе Редактирование и отладка M-файлов)

Окончания строк удалены в файлах, поставляемых с программным обеспечением MATLAB для платформ Windows; Воздействие на просмотр в приложении «Блокнот»

В предыдущих версиях текстовые файлы, поставляемые с MATLAB для платформ Windows, включали возврат каретки и перевод строки в конце каждой строки. Начиная с R2007b, текстовые файлы, предоставляемые MATLAB, не включают возврат каретки и перевод строки в конце каждой строки.

Затронутые типы файлов: .asc .bat .c .cc .cdr .cpp .def .for gs.rights .h .ini .m .mdl .pl readme .tlc .tmf .txt

Нет никакого влияния, если вы просматриваете файлы в MATLAB и других распространенных текстовых редакторах, за известным исключением приложения Microsoft Notepad.

Вопросы совместимости. Если вы используете приложение «Блокнот» для просмотра файлов, поставляемых с MATLAB, вы видите символы возврата каретки и перевода строки вместо окончания строки. Это делает файлы менее читаемыми в приложении «Блокнот». Другие текстовые редакторы могут отображать символы вместо концов строк, но из протестированных обычных текстовых редакторов не было обнаружено ни одного, который бы это делал.

В качестве альтернативы приложению «Блокнот» используйте приложение Microsoft WordPad, поставляемое с платформами Windows, или другой текстовый редактор для просмотра файлов.


person Philip Oakley    schedule 25.07.2011    source источник
comment
Кстати, вы уверены в первом утверждении? На моем компьютере с Windows MATLAB по умолчанию создает файлы с окончаниями строк CRLF...   -  person Amro    schedule 26.07.2011
comment
@Amro: на моей машине это так, но я поспрашиваю, есть ли для него «скрытые» настройки Matlab.   -  person Philip Oakley    schedule 26.07.2011
comment
Добавлена ​​выдержка из файла справки Matlab по нормализации LF в Windows.   -  person Philip Oakley    schedule 26.07.2011
comment
Несмотря на заявленную нормализацию LF, R2012a в Windows 7 записывает последовательности новой строки CRLF, по крайней мере, для вновь созданных файлов.   -  person Christopher Barber    schedule 04.04.2012
comment
@ChristopherBarber: мне нужно присмотреться к этому и посмотреть, делает ли это W7 или R2012a (я должен быть в состоянии проверить R2012a на XP).   -  person Philip Oakley    schedule 05.04.2012


Ответы (2)


Установите для конфигурации core.autocrlf значение false, а для конфигурации core.eollf в Windows.

[core]
    autocrlf = false
    eol = lf

Также взгляните на gitattributes под Checking-out and checking-in

person manojlds    schedule 25.07.2011
comment
так что в gitattributes мне понадобится *.m eol=lf тогда? (такой же, как пример *.sh на странице руководства) - person Philip Oakley; 26.07.2011
comment
@Philip Oakley - Да, вы можете иметь *.m eol=lf в .gitattributes - person manojlds; 26.07.2011
comment
:@manojlds: Разве это не 'autocrlf = true' для обычных текстовых файлов Windows, которые нормализуются в LF в репозитории, а затем проверяются как CRLF в рабочем каталоге? [Файл .gitattributes улавливает файлы Matlab как отличающиеся при проверке] - person Philip Oakley; 26.07.2011
comment
Я также забыл safecrlf=true, который мне нужно попробовать с этим сценарием смешанного типа файлов. - person Philip Oakley; 27.07.2011
comment
Я пробовал safecrlf=true со смешанными результатами. Изначально я строю историю старых работ. Для этих файлов мне нужно было его отключить (я прокомментировал это с помощью #), поскольку некоторые из файлов не были нормализованы (т.е. я смешал CR и CRLF между файлами, поэтому не возвращал и не извлекал их без изменений; но я хочу нормализовать их!). После того, как я сделал историю, текущие файлы уже должны соответствовать, поэтому я смогу повторно установить safecrlf=true - person Philip Oakley; 28.07.2011

Измените autocrlf на false. установите для core.whitespace значение cr-at-eol (это гарантирует, что вы не будете выделять ^M как проблемный пробел в различиях и исправлениях). Используйте vim или другой редактор, чтобы убедиться, что в ваших файлах .m есть lfs.

person Adam Dymitruk    schedule 29.12.2011