Поддержка UTF-16 в Git для Windows 2.x

Я работаю в команде над проектом разработки, который включает файлы, созданные в SQL Server Management Studio (SSMS). Кодировка файла по умолчанию для SSMS: Кодовая страница 1200 (Little-endian UTF-16).

Git для Windows распознает эти файлы как двоичные. Он не может отображать различные виды файлов и не может объединять файлы (удаленные объединения перезаписывают локальную версию).

Мы можем легко изменить кодировку по умолчанию в SSMS. Тем не менее, мы предпочитаем не рисковать тем, что какие-либо файлы UTF-16 будут зафиксированы, поскольку они приводят к хаосу в наших системах контроля версий и выпускают процессы mgmt.

В этом посте о переполнении стека описано, как использовать фильтры Clean/Smudge для преобразования файлов UTF-16 в UTF-8 на лету при фиксации с использованием двух инструментов GnuWin32: iconv, file,

Это хорошо работает, и мы уже давно используем его с предпросмотром msysgit 1.9.5. Тем не менее, эта версия устарела, и новый Git имеет все больше и больше функций, которые необходимы нам как команде. Проблема заключается в том, что этот обходной путь основан на обновлении двух файлов: Git\etc\gitattributes а также Git\etc\gitconfig, Эти 2 файла не существуют в Git для Windows 2.x

Как добавить поддержку UTF-16 в Git 2.x? Либо путем адаптации обходного пути к описанному для Git 1.x, либо любыми другими способами.

2 ответа

Решение

Сконфигурируйте 2 файла для всей системы (т.е. всех пользователей и всех репозиториев) следующим образом:

gitconfig

В вашем git для оболочки Windows:

git config --system --edit

gitattributes

git config --system core.attributesfile <path>
и использовать тот путь, который вы пожелаете

Конечно, если вы хотите уменьшить область действия до глобальной (т.е. все репо только для конкретного пользователя), тогда замените --system с --global,

Актуальные вопросы:
Где мне разместить мой глобальный файл gitattributes?
Откуда берутся настройки в моей конфигурации Git?
Что такое $(префикс) в $(префикс)/etc/gitconfig?

Создание глобального gitattributes а также gitconfig наверное, лучший путь.

Git для Windows 2 основан на MSYS2. Это имеет \etc каталог где-то. Лучший способ получить к нему доступ - открыть оболочку MSYS2.

Другие вопросы по тегам