Git, исправление имен файлов и путей, кодировка - PullRequest
0 голосов
/ 03 сентября 2018

Я перенесу hg-репозиторий в git-репозиторий. И у меня проблемы. Можете ли вы помочь мне.

Проблема с именами файлов (и путями) в репозитории git (в расширении git). Имена на кириллице (победа 1251). Можете ли вы предложить, как я могу восстановить git-репозиторий?

Следующий скриншот: enter image description here

1 Ответ

0 голосов
/ 03 сентября 2018

Сам Git в значительной степени 1 не зависит от кодировки. Тем не менее, Git намного больше полезно , если вы придерживаетесь кодировки UTF-8, потому что это предполагаемое значение по умолчанию, если не указано иное, а кодировка UTF-8 позволяет избежать ряда ловушек. (хотя и не все). Большая часть среды (наборы инструментов и тому подобное), которая работает с экосистемой Git, предпочитает кодировку UTF-8.

Если вы укажете кодировку (установив для LANG значение, например, ru_RU.CP1251), некоторые инструменты поймут, что данные кодируются в CP1251, но они также будут думать, что ваш терминал использует CP1251, что может быть не так. Чтобы обойти это, вы можете использовать luit , как описано в ответе на Как просмотреть текстовый файл cp1251 в консоли UTF-8? .

Метод работы Mercurial с кодировкой имен файлов описан в Mercurial Wiki . Преобразование в UTF-8 во время быстрого экспорта / быстрого импорта возможно, но немного сложнее. Кроме того, вам решать, хотите ли вы преобразовать файл content (своп экспорта / импорта - идеальное время для этого, но, очевидно, это требует тщательного определения фактической кодировки содержимого).

(Вы также можете использовать git filter-branch после факта, чтобы перекодировать все имена файлов при перестроении всего преобразованного хранилища, но если вы не продвинулись слишком далеко, вероятно, лучше просто повторить преобразование из Hg в Git. )


1 То есть, Git пытается не интерпретировать имена файлов или сам файл, просто сохраняя снимки. Но это ломается во многих краевых и угловых случаях.

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