Raman, On Dec 6, 2007 11:14 PM, Raman Gupta <[EMAIL PROTECTED]> wrote: > Basically, what we need to be sure about is which encoding svn commit > defaults to when it reads log message files, and which python method > returns that same encoding on every platform.
I found what looks like the correct way to get the encodings used in the Windows platform: locale.getdefaultlocale() <http://docs.python.org/lib/module-locale.html>. Below is the new patch. Romulo P.S.: Fot those trying my initial test-case script, svnmergebug.cmd, please make sure svn and svnmerge are in your path and PATHEXT contains .PY. Index: svnmerge.py =================================================================== --- svnmerge.py (revision 28275) +++ svnmerge.py (working copy) @@ -68,7 +68,7 @@ # A "target" is generally user-specified, and may be a working copy or # a URL. -import sys, os, getopt, re, types, tempfile, time, popen2 +import sys, os, getopt, re, types, tempfile, time, popen2, locale from bisect import bisect from xml.dom import pulldom @@ -208,6 +208,10 @@ assert lines[-1] == "\n" return prefix + lines[:-1].replace("\n", "\n"+prefix) + "\n" +def recode_stdout_to_file(s): + u = s.decode(sys.stdout.encoding) + return u.encode(locale.getdefaultlocale()[1]) + class LaunchError(Exception): """Signal a failure in execution of an external command. Parameters are the exit code of the process, the original command line, and the output of the @@ -933,7 +937,7 @@ """Return the log message for a specific integer revision number.""" out = launchsvn("log --incremental -r%d %s" % (revnum, url)) - return "".join(out[1:]) + return recode_stdout_to_file("".join(out[1:])) def construct_merged_log_message(url, revnums): """Return a commit log message containing all the commit messages _______________________________________________ Svnmerge mailing list [email protected] http://www.orcaware.com/mailman/listinfo/svnmerge
