2011-06-13 105 views
4

我使用Python的腳本實施SVN pre-commit鉤子SVN pre-commit鉤子編碼

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) 

預commit.bat(服務器託管在Windows Server 2008上):

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

在一個客戶端我用TortoiseSVN的

一切正常,除了提交消息編碼。如果提交消息包含例如俄文字母,則它們顯示爲'?' (問號)在烏龜窗口。

+0

請停止在標題中寫標籤。 – 2011-06-13 09:27:59

回答

2

我想說這更多的是.bat然後python腳本的錯,因爲python有優秀的unicode支持。
也許這個問題的答案可以幫助你。

Batch file encoding

+0

在bat文件中添加'chcp 1251'或'chcp 65001'行不起作用。 – alexey 2011-06-13 10:32:16

0

問題可能是烏龜本身。請嘗試以下

SVN日誌http://rev_url

,看看SVN說什麼日誌的評論是。如果它得到正確的話,那麼它的大概烏龜不會顯示俄羅斯的編碼。如果你沒有預先提交鉤子提交,會發生什麼?這顯示正確嗎?

+0

是的,所有的註釋都沒有預先提交鉤子。 – alexey 2011-06-14 04:39:44