Mercurial фиксирует сообщения и журнал, какая кодировка поддерживается, HG вообще заботится?
Я попытался сделать простую фиксацию через мою библиотеку обертки для Mercurial, используя простой текст Unicode:æøåÆØÅ
как мое сообщение коммита. Это записывается в текстовый файл и передается Mercurial с соответствующим параметром:
hg commit --logfile FILE
если я впоследствии посмотрю на репозиторий с TortoiseHg, символы будут воспроизведены правильно. На консоли они искалечены:--8-->
[C:Temp] :hg log changeset: 0:6a0911410128 tag: tip user: Lasse V. Karlsen date: Wed Dec 01 21:48:54 2010 +0100 summary: Unicode:æøåÆØÅ
если я перенаправляю вывод hg log
- файл, и откройте его, æøåÆØÅ
is воспроизводится правильно.
Итак, мой вопрос таков:
- могу я спросить
hg
чтобы записать журнал в файл напрямую,или мне нужно перенаправить стандартный вывод? - это вызовет проблемы с кодировкой Python для консоли, т. е.. некоторые персонажи сделают
hg
сбой вместо того,чтобы просто искажать вывод? - есть ли известная поддерживаемая кодировка для сообщений фиксации, которой я должен придерживаться?
или это просто такая просто:
- Mercurial не заботится, он берет содержимое файла, который я ему даю, независимо от содержимого, и сохраняет это как сообщение фиксации. При создании журнала он просто сбросит его обратно на консоль, став жертвой любых ограничений, которые имеет в этом отношении библиотека вывода консоли Python?
1 ответов
следующее может не решить проблему, но может помочь отладить ее.
Проверьте:https://www.mercurial-scm.org/wiki/EncodingStrategy
Если я перенаправляю вывод журнала hg в файл и открываю его, æøåÆØÅ воспроизводится правильно.
таким образом, по крайней мере mercurial сохраняет информацию о фиксации правильно. Это только результат, который испорчен.
некоторые работы происходят по этим направлениям, но не связаны с это
[Edit: пропустил тот факт, что вы находитесь в windows]
см. последний абзац о том, как справиться с проблемами совместимости набора символов:https://www.mercurial-scm.org/wiki/CharacterEncodingOnWindows
Он говорит:
- установите кодовую страницу консоли в соответствии с системной кодовой страницей
- переопределить кодировку Mercurial с переменной среды
- настройка HGENCODING переопределит обнаруженный системный набор символов.
- переопределить кодировку Mercurial с помощью опции командной строки
- использование опции global --encoding позволит вам установить предпочтительную кодировку для каждой команды.
- используйте инструменты на основе GUI для взаимодействия с Mercurial
- это также устраняет проблему, устраняя эту надоедливую консоль полностью.
- используйте Linux / UNIX и UTF-8
- это заставляет Билла Гейтса плакать.