4

我正在使用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 窗口中。

4

2 回答 2

2

我会说这更多是.batpython脚本的错,因为python具有出色的unicode支持。
也许这个问题的答案可以帮助你。

批处理文件编码

于 2011-06-13T09:50:46.360 回答
0

问题可能出在乌龟本身。尝试以下

svn 日志http://rev_url

看看 svn 说的日志注释是什么。如果它做对了,那么它可能是 Tortoise 没有显示俄语编码。如果你在没有预提交钩子的情况下提交会发生什么?这显示正确吗?

于 2011-06-13T15:02:42.470 回答