4

私はPythonスクリプトを使用してSVNpre-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)

私のpre-commit.bat(サーバーはWindows Server 2008でホストされています):

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

クライアント側では、TortoiseSVNを使用しています。

コミットメッセージのエンコードを除いて、すべて問題ありません。たとえば、コミットメッセージにロシア語の文字が含まれている場合、それらは「?」として表示されます。(疑問符)亀のウィンドウ。

4

2 に答える 2

2

.batPython は優れた Unicode サポートを備えているため、これは Python スクリプトの欠点であると言えます。
おそらく、この質問の答えがあなたを助けることができます。

バッチファイルのエンコーディング

于 2011-06-13T09:50:46.360 に答える
0

問題は Tortoise 自体にある可能性があります。以下を試してください

svn ログhttp://rev_url

svn がログ コメントを示している内容を確認します。それが正しければ、おそらく Tortoise はロシア語のエンコーディングを表示していません。pre-commit フックなしでコミットするとどうなりますか? それは正しく表示されますか?

于 2011-06-13T15:02:42.470 に答える