-
-
Notifications
You must be signed in to change notification settings - Fork 59
Unix vs Windows Line Ends
nin-jin edited this page Dec 1, 2020
·
3 revisions
- Один символ
LF
. - На данный момент понимается всеми инструментами во всех системах как завершение строки.
- С клавиатуры по
enter
вводится именно этот символ во всех системах. - Используется во всех UNIX-подобных системах.
- GIT хранит текстовые файлы именно в этом формате.
- Пара символов
CR+LF
. - Появился как компромисс между системами (ныне доминирующими в IT) понимающими
LF
и системами (ныне не актуальными) понимающимиCR
. - По историческим причинам используется по умолчанию в Windows системах.
- Инструменты, не понимающие
CR
приклеивают его к концу строки при разбиении на строки, что даёт неожидаемые результаты. - Требуется постоянная конвертация в одиночный
LF
и обратно в разных местах использования. - Конвертация в
CR+LF
делает файл бинарно не идентичным, что даёт разные хеш суммы.
CR+LF
- устаревший костыль, не несущий в настоящее время никакой пользы, но создающий множество проблем. Поэтому используется наиболее простой и однозначный LF
формат.
Для Windows систем MAM предоставляет editorconfig форсирующий использование LF
редактором, даже для новых файлов, а так же gitattributes предотвращающий лишние конвертации.