SVN 提交前钩子的编码问题
我正在用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
这个问题可能是出在Tortoise这个工具上。你可以试试下面的命令:
svn log http://rev_url
看看svn会给你什么样的日志评论。如果它显示正确,那可能就是Tortoise没有正确显示俄文编码。那如果你在没有使用预提交钩子的情况下提交,会显示正确吗?
2
我觉得这更多是.bat
文件的问题,而不是Python脚本的问题,因为Python对Unicode的支持非常好。
也许这个问题的答案能帮到你。