Преобразование сообщений фиксации Subversion в Unicode
В настоящее время у меня есть локальный репозиторий Subversion с большим количеством сообщений коммита в cp1251
кодирование.
Есть ли способ, которым я могу преобразовать все сообщения коммита в utf-8
кодирование?
2 ответа
Ваши сообщения о коммите уже сохранены как UTF-8:
Subversion внутренне обрабатывает определенные биты данных - например, имена свойств, имена путей и сообщения журнала - как кодировку UTF-8 в кодировке Unicode. Это не значит, что все ваши взаимодействия с Subversion должны включать UTF-8. Как правило, клиенты Subversion будут изящно и прозрачно обрабатывать преобразования между UTF-8 и системой кодирования, используемой на вашем компьютере, если такое преобразование может быть разумно выполнено (что имеет место для большинства распространенных кодировок, используемых сегодня).
Однако если вы как-то дважды их закодировали, то при условии, что вы используете репозиторий в стиле FSFS, возможно, самым простым способом будет проработать все файлы revprop, которые вы найдете в db/revprops/*/*
под вашим репозиторием и переписать их с правильной кодировкой, например, используя инструмент командной строки iconv из GnuWin32. (Обратите внимание, что эти файлы должны иметь конец строки Unix, т.е. LF, а не CRLF).
Как говорит Rup-8, Subversion должна преобразовать все сообщения журнала в UTF-8 перед сохранением их в хранилище и обратно в локальную кодировку для отображения. Если ваши сообщения журнала не конвертируются правильно, либо:
- Убедитесь, что ваш языковой стандарт правильно определяет кодировку, которую вы используете; или же,
- Используйте опцию --message-encoding