Кодировка крючка предварительной фиксации SVN
-
27-10-2019 - |
Вопрос
Я использую Питон сценарий для реализации Перехват предварительной фиксации SVN:
svnlookPath = 'path-to-svnlook'
f = subprocess.Popen([svnlookPath, 'log', sys.argv[1], '--transaction', sys.argv[2]], stdout=subprocess.PIPE).stdout
commitMessage = f.read()
f.close()
commitMessage = commitMessage.rstrip('\n\r')
print >> sys.stderr, 'Commit message: "' + commitMessage + '"'
sys.exit(1)
Мой предварительная фиксация.bat (сервер размещен на Windows Server 2008):
@python.exe path-to-py-file %1 %2
На стороне клиента я использую TortoiseSVN.
Все идет нормально, за исключением сообщения о фиксации кодирование.Если сообщение о фиксации содержит, например, русские буквы, они отображаются как "?" (вопросительные знаки) в окне Tortoise.
Решение
Я бы сказал, что в этом больше виноваты сами .bat
затем о скрипте python, потому что python имеет отличную поддержку unicode.
Возможно, ответ на этот вопрос сможет вам помочь.
Другие советы
Проблема может заключаться в самой Черепахе.Попробуйте следующее
журнал svn http://rev_url
и посмотрите, что svn говорит о комментарии к журналу.Если он все сделает правильно, то, вероятно, Tortoise не показывает русскую кодировку.Что произойдет, если вы совершите коммит без вашего хука предварительной фиксации?Правильно ли это показано?