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
.batthen of the python script, because python has excellent unicode support.Perhaps the answer of this question can help you.
Batch file encoding