SVN pre-commit hook-Codierung
-
27-10-2019 - |
Frage
Ich bin mit Python Skript zu implementieren 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)
Sie Pre-commit.bat (Server auf Windows Server 2008 gehostet wird):
@python.exe path-to-py-file %1 %2
Auf einer Client-Seite I Verwendung TortoiseSVN .
Alles in Ordnung geht, mit Ausnahme Commit-Nachricht Codierung . Wenn die Commit-Nachricht enthält, beispielsweise werden russische Buchstaben sie wie dargestellt ‚?‘ (Fragezeichen) in Schildkröten-Fenster.
Lösung
Ich würde sagen, das ist mehr die Schuld der .bat
dann des Python-Skript, weil Python ausgezeichnete Unicode-Unterstützung hat.
Vielleicht ist die Antwort auf diese Frage kann Ihnen helfen.
Andere Tipps
Das Problem könnte Schildkröte selbst sein. Versuchen Sie, die folgende
svn log http: // rev_url
und sehen, was svn sagt der Protokoll Kommentar. Wenn es es richtig macht, dann ist es wahrscheinlich Schildkröte nicht die russische Codierung zeigt. Was passiert, wenn Sie sich verpflichten, ohne Haken pre-commit? Ist diese Show richtig?