суббота, 28 февраля 2015 г.

Git и имена файлов с кириллицей

Возникла необходимость в Git хранить файлы, в имени которых встречаются символы кириллицы. Сама проблема описана здесь:
Git for Windows
MSYS programs don't fully support Unicode yet, e.g.
  • bash doesn't let you type non-ASCII characters
  • ls converts non-ASCII characters to '?' when printing to the console (redirecting to a file or another program works, though)
Tcl only supports BMP (Basic Multilingual Plane, i.e. Unicode characters \u0000 - \uffff), therefore gitk and git-gui currently don't support e.g. CJK Extensions B - D.
Некоторые советы они приводят там же. В общем, полезно следить за обновлением документации.

Хочу заметить, что проблема с преобразованиями решена в Git 2.1 http://stackoverflow.com/a/25098609/3364871, но msysgit пока стоит на версии 1.9.5.

Оказалось не всё так просто, но проблема решена.


Шаг 1. Включить поддержку ввода русских букв

Создать файл ~/.inputrc со следующим содержимым:
## allow to type russian letters
set output-meta on
set convert-meta off

Работает даже автодополнение.


Шаг 2. Исправить вывод команды ls

Команда ls часто используется при работе в консоли. В исходном варианте она показывает вместо кириллицы знаки вопроса:


Вывод утилиты cat учитывает настройки локали. Поэтому добавляем в файл ~/.bashrc следующее содержимое:
ls_git() {
    ls $@ | cat
}
alias ls=ls_git


Шаг 3. Изменить настройки git

По-умолчанию git старается экранировать символы, которые не входят в ASCII ("\nnn\nnn...").


Чтобы отключить это нужно ввести команду:
git config [--global] core.quotepath off

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


См. также:





3 комментария:

  1. Я видел комментарии людей, которые уже получили ссуду от г-на Бенджамина Ли, и я решил подать заявку в соответствии с их рекомендациями, и всего через 5 дней я подтвердил свою ссуду на моем банковском счете на общую сумму 850 000,00 долларов США, которую я запросил. Это действительно отличная новость, и я советую всем, кому нужен настоящий кредитор, подать заявку по электронной почте: 247officedept@gmail.com или WhatsApp: + 1-989-394-3740. Я счастлив, что получил ссуду, о которой просил.

    ОтветитьУдалить