У меня возникла необходимость подправить pre-commit hook на svn, но почти сразу же я столкнулся со следующей проблемой:
Я пытаюсь проверить комментарий коммита на наличие русских символов, однако python этих самых символов не находит.
Вот фрагмент кода:
#!/usr/bin/python
#This Python file uses the following encoding: utf-8
import sys
import os
import re
def look_log(transaction, repo) :
cmd = '/usr/bin/svnlook %s -t "%s" "%s"' % ('log', transaction, repo)
return os.popen(cmd, 'r').read()
def check_comment_length(repos, txn):
str = look_log(txn, repos)
if (re.match('[а-яА-Я]',str) is None):
sys.stderr.write("Ваш коммит заблокирован. Причина: Смысл комментария будет не ясен будущим поколениям. \n");
sys.stderr.write("Пожалуйста, отредактируйте ваш комментарий, затем попробуйте закоммитить повторно. \n");
sys.stderr.write(str);
sys.exit(4)
def main(repos, txn):
check_comment_length(repos, txn)
sys.exit(0)
svn del http://192.168.0.99/svn/svn-test/test -m 'Тестовый коммит qwer'
Получаю следующее:
svn: E165001: Commit blocked by pre-commit hook (exit code 4) with output:
Ваш коммит заблокирован. Причина: Смысл комментария будет не ясен будущим поколениям.
Пожалуйста, отредактируйте ваш комментарий, затем попробуйте закоммитить повторно.
?\208?\162?\208?\181?\209?\129?\209?\130?\208?\190?\208?\178?\209?\139?\208?\185 ?\208?\186?\208?\190?\208?\188?\208?\188?\208?\184?\209?\130 qwer
На сколько я понял, именно в такой форме, в которой выходит последняя строка ответа, python и воспринимает комментарий коммита, созданный по русски. Как мне его заставить понимать комментарии как русские символы?