Comments 39
Большое спасибо.
Хорошая статейка.
А почему нельзя редактировать сразу в utf8?
можно, отчего-ж нельзя, np++ или тот же far 2.х, но будут проблемы тогда при отображении списка новых/отредактированных файлов внутри коммита. Но в принципе не проблема…
Если не сложно, то распиши и этот путь джедая. Чтобы был выбор у народа :)
Если едитить в cp1251, то у народа с другими локалями будут траблы.
вы меня засомневали прям :), нет все ОК, проверил сейчас на машине с ru_RU.UTF-8
проблем нет, т.к. внутри оно все в utf-8 хранится.
проблем нет, т.к. внутри оно все в utf-8 хранится.
т.е. commitencoding только указывает в какой кодировки идет входящий текст коммита, а сам коммит внутри базы хранится в utf-8 и клиенту отдается в той кодировке в которой он просит согласно logoutputencoding.
Не совсем так
i18n.commitencoding действительно указывает в какой кодировке был введён комментарий, но текст комментария вносится в объект коммита без изменений, а в заголовок объекта пишется кодировка комментария.
Я не уверен только влияет-ли как-то этот заголовок на имя коммитера и автора.
Так что в какой кодировке вводится комментарий — абсолютно всё равно, главное что-бы Git знал какая это кодировка. Git log и некоторые другие комманды используют этот заголовок что-бы во время вывода на экран производить перекодирование в нужную кодировку (в UTF-8 или в ту, которая указана в i18n.logoutputencoding). Но только для форматов oneline, short, medium, full, fuller. Если задать формат явно, например --format=%s, то первая строка комментария будет выведена без изменений.
А вот с именами файлов беда. Если коротко — то лучше не пользоваться русскими именами файлов если с репозиторием будут работать под разными операционными системами.
i18n.commitencoding действительно указывает в какой кодировке был введён комментарий, но текст комментария вносится в объект коммита без изменений, а в заголовок объекта пишется кодировка комментария.
Я не уверен только влияет-ли как-то этот заголовок на имя коммитера и автора.
Так что в какой кодировке вводится комментарий — абсолютно всё равно, главное что-бы Git знал какая это кодировка. Git log и некоторые другие комманды используют этот заголовок что-бы во время вывода на экран производить перекодирование в нужную кодировку (в UTF-8 или в ту, которая указана в i18n.logoutputencoding). Но только для форматов oneline, short, medium, full, fuller. Если задать формат явно, например --format=%s, то первая строка комментария будет выведена без изменений.
А вот с именами файлов беда. Если коротко — то лучше не пользоваться русскими именами файлов если с репозиторием будут работать под разными операционными системами.
>commitencoding = cp1251
А потом на вас будут матерится пользователи *nix систем
Лучше попробуйте
code.google.com/p/tortoisegit/
плюс нормальный редактор с поддержкой юникода, можно и far, насколько я помню у него нету беды с юникодом, можно и notepad++, я же вообще windows портом KDEшного kate пользуюсь
А потом на вас будут матерится пользователи *nix систем
Лучше попробуйте
code.google.com/p/tortoisegit/
плюс нормальный редактор с поддержкой юникода, можно и far, насколько я помню у него нету беды с юникодом, можно и notepad++, я же вообще windows портом KDEшного kate пользуюсь
chcp 65001
и cmd.exe уже в utf-8Ай спасибо =)
Русских имён файлов пока не было, но знаю, что уже всё хорошо, спасибо!
Русских имён файлов пока не было, но знаю, что уже всё хорошо, спасибо!
Сперва вы учите git понимать utf8, затем вы вдруг отказываетесь от utf8 в пользу старинной cp1251, а в конце вдруг выбираете кодировочку ещё древней — cp866 :)
Не лучше ли будет оставить всё в utf8, чтобы везде было одинаково?
Не лучше ли будет оставить всё в utf8, чтобы везде было одинаково?
для виндовой консоли родная кодовая страница это 866, от того и все эти ухищрения, не более… под линуксом у меня везде ru_RU.UTF-8, там все эти лишние мероприятия вообще не нужны… так же не нужны они если вы собираетесь пользоваться графической оболочкой для git.
Параметр
Команда
Пробовал: играться с chcp, переключаться между cmd, far2 и bash. Не помогло.
Есть предположение, где грабли?
P.S. ОС Windows 7 Russian, версия msysgit: 1.7.4-preview20110204
quotepath = false
мне не помог. Команда
git status
выводит все, что угодно — вопросики, квадратики — но не русское имя.Пробовал: играться с chcp, переключаться между cmd, far2 и bash. Не помогло.
Есть предположение, где грабли?
P.S. ОС Windows 7 Russian, версия msysgit: 1.7.4-preview20110204
После долгих мучений получилось решить проблему скачиванием utf8-версии mysysgit.
Сайт на японском, но ссылку на экзешник найти нетрудно.
http://tmurakam.org/git/
Сайт на японском, но ссылку на экзешник найти нетрудно.
http://tmurakam.org/git/
Для использования git submodule еще небольшие настройки нужно добавить:
И в сам .gitattributes добавить запись:
git config --global core.attributesfile "~/.gitattributes"
И в сам .gitattributes добавить запись:
.gitmodules eol=lf
Для тех, кто выйдет на эту заметку как и я, из гугла. Для решения проблем с utf8 есть дистр msysgit с поддержкой unicode. На момент написания этого коммента, самым свежим был этот code.google.com/p/msysgit/downloads/detail?name=Git-1.7.8-preview20111229-unicode.exe
Статья — просто класс! Обожаю такой материал: всё вместе, всё по теме и полно.
Спасибо, большое.
Спасибо, большое.
Вот ссылка на правильный софт: code.google.com/p/utf8-git-on-windows/downloads/list
Git Bash.
Пробовал всё, что описано в статье. Однако результат нулевой. Смотрю содержимое текстовых файлов:
Корректно отображается кириллица в содержимом только того файла, кодировка которого совпадает с кодировкой окна Options:

По мотивам проблемы создал две темы на stackoverflow: первая, вторая.
Пробовал всё, что описано в статье. Однако результат нулевой. Смотрю содержимое текстовых файлов:
cat ansi.txt
cat utf-8.txt
Корректно отображается кириллица в содержимом только того файла, кодировка которого совпадает с кодировкой окна Options:

По мотивам проблемы создал две темы на stackoverflow: первая, вторая.
Пока что не удалось справиться с проблемой. Вы не могли бы описать «стэк» программ, которые пересылают текст друг другу (как я понимаю, это по крайней мере сам git, pager и cmd) и какие настройки на что влияют, чтобы можно было как-то это отладить?
git --no-pager diff |less
pager = cat|more.com
Жалуется на неизвестную команду more.com
Вариант pager = cat|more отработал нормально.
Sign up to leave a comment.
Особенности настройки git под windows