Много моих конфигурационных файлов пользователя приложения сохранены в репозитории мерзавца для легкого совместного использования через несколько машин и несколько платформ. Среди этих конфигурационных файлов .gitconfig
который содержит следующие настройки для обработки символов перевода строки возврата каретки
[core]
autocrlf = true
safecrlf = false
Эти настройки также применяются на платформу GNU/Linux, которая вызывает неясные ошибки.
Каковы некоторые лучшие практики для обработки этих конкретных различий платформы в конфигурационных файлах?
Я понимаю, что эта проблема могла быть решена при наличии ответвления для каждой платформы и хранения общего материала в ведущем устройстве и слиянии с ответвлением платформы, когда ведущее устройство продвигается. Я задаюсь вопросом, существуют ли какие-либо более легкие решения этой проблемы?
Я подробно рассмотрел такие настройки конфигурации ( crlf
) в вопросе:
распространение конфигурации git с кодом .
Вывод такой:
*.java +crlf *.txt +crlf ...
git status
, среда оболочки и svn import
(ссылки и справочные материалы см. В разделе « распространение конфигурации git с кодом »). crlf
. Теперь, что касается конкретной проблемы настроек для каждой платформы , ветвление не всегда является правильным инструментом, особенно для данных, не связанных с программой (т. Е. Эти настройки не связаны с тем, что вы разрабатываете, только для VCS, хранящего историю вашего развития)
Как указано в вопросе Git: Как поддерживать две ветви проекта и объединять только общие данные? :
ваша жизнь будет значительно изменена. проще, если вы поместите системно-зависимый код в разные каталоги и имеете дело с межплатформенными зависимостями в системе сборки (Makefiles или что-то еще, что вы используете).
В этом случае, хотя ветки могут использоваться для системно-зависимого кода, я бы порекомендовал каталог для инструментов поддержки системных настроек, со сценарием, способным создать соответствующий файл .gitattributes
для применения правильная настройка в зависимости от платформы развертывания репо.
Я думаю, у вас должен быть .gitconfig в зависимости от операционной системы. пользователь использует. Пользователям Windows вообще не нужен autocrlf, в отличие от пользователей Linux. Например. сохраните текстовые файлы с помощью crlf и пусть Git автоматически конвертирует файлы туда и обратно для пользователей Linux.
Вы также можете проверить .gitattributes , что позволяет вам определять, какие файлы конвертируются, а какие нет. Если у вас есть файлы конфигурации только в одном месте, вы можете определить, что преобразование выполняется только в этом каталоге, на всякий случай.
Никогда не включайте autocrlf
, это не вызывает ничего, кроме головной боли и печали.
Нет оправдания использованию \ r \ n
в Windows, все приличные редакторы (по определению) могут обрабатывать \ n
.