changeset 17705:6929b9c70be9 stable

subrepo: setting LC_MESSAGES only works if LC_ALL is empty or unset For example LC_ALL=de_DE.utf-8 would cause the version check to fail, because "svn, Version 1.6.12 (r955767)" with a capital "V" will be printed. Using "svn --version --quiet" would only print the version number, but then matching other messages, e.g. "Committed revision" would fail.
author Thomas Arendsen Hein <thomas@intevation.de>
date Thu, 04 Oct 2012 16:30:40 +0200
parents 4a07d2ff7c66
children 70efdc22b188 605fe310691f
files mercurial/subrepo.py
diffstat 1 files changed, 4 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/subrepo.py	Tue Oct 02 09:26:42 2012 +0200
+++ b/mercurial/subrepo.py	Thu Oct 04 16:30:40 2012 +0200
@@ -655,6 +655,10 @@
             cmd.append(path)
         env = dict(os.environ)
         # Avoid localized output, preserve current locale for everything else.
+        lc_all = env.get('LC_ALL')
+        if lc_all:
+            env['LANG'] = lc_all
+            del env['LC_ALL']
         env['LC_MESSAGES'] = 'C'
         p = subprocess.Popen(cmd, bufsize=-1, close_fds=util.closefds,
                              stdout=subprocess.PIPE, stderr=subprocess.PIPE,