SVN预提交钩子编码

时间:2011-06-13 09:23:32

标签: python svn tortoisesvn pre-commit-hook svn-hooks

我正在使用 Python 脚本来实现 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)

我的 pre-commit.bat (服务器托管在Windows Server 2008上):

@python.exe path-to-py-file %1 %2

在客户端,我使用 TortoiseSVN

一切正常,除了提交消息编码。例如,如果提交消息包含俄语字母,则它们显示为“?” (问号)在Tortoise窗口。

2 个答案:

答案 0 :(得分:2)

我想说这更像是.bat然后python脚本的错误,因为python具有出色的unicode支持。
也许这个问题的答案可以帮到你。

Batch file encoding

答案 1 :(得分:0)

问题可能是龟本身。请尝试以下

svn log http://rev_url

并查看svn所说的日志评论是什么。如果它正确,那么它可能是Tortoise没有显示俄语编码。如果您在没有预先提交挂钩的情况下提交会发生什么?这是否正确显示?