SVN pre-commit hook encoding
I'm using Python script to implement SVN pre-commit hook:
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)
My pre-commit.bat (server is hosted on Windows Server 2008):
@python.exe path-to-py-file %1 %2
On a client side I use TortoiseSVN.
Everything goes ok, except commit message encoding. If the commit message contains, for example, Russian letters they are shown as '?' (question marks) in Tortoise window.
I would say this is more the fault of the .bat
then of the python script, because python has excellent unicode support.
Perhaps the answer of this question can help you.
Batch file encoding
The problem could be Tortoise itself. Try the following
svn log http://rev_url
and see what svn says the log comment is. If it gets it right, then its probably Tortoise not showing the Russian encoding. What happens if you commit without your pre-commit hook? Does that show correctly?
精彩评论