[PATCH stable] setup: set SystemRoot even if .hg doesn't exist (issue3073)

Yuya Nishihara yuya at tcha.org
Sun Oct 30 08:18:15 CDT 2011


# HG changeset patch
# User Yuya Nishihara <yuya at tcha.org>
# Date 1319980502 -32400
# Branch stable
# Node ID 4a702fd4fcf5f161af2ea49d543eb661add84a6f
# Parent  bf55991af17e7e07593cceb2163328ae8cf5ee65
setup: set SystemRoot even if .hg doesn't exist (issue3073)

It's necessary to run subprocess on Windows. Note that the original issue
was fixed by b357a972d6cd.

diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -134,6 +134,11 @@ def runhg(cmd, env):
 version = ''
 
 env = {'HGRCPATH': '', 'LANGUAGE': 'C'}
+if 'SystemRoot' in os.environ:
+    # Copy SystemRoot into the custom environment for Python 2.6
+    # under Windows. Otherwise, the subprocess will fail with
+    # error 0xc0150004. See: http://bugs.python.org/issue3440
+    env['SystemRoot'] = os.environ['SystemRoot']
 
 if os.path.isdir('.hg'):
     # Execute hg out of this directory with a custom environment which
@@ -143,11 +148,6 @@ if os.path.isdir('.hg'):
     env['PYTHONPATH'] = os.pathsep.join(pypath)
     if 'LD_LIBRARY_PATH' in os.environ:
         env['LD_LIBRARY_PATH'] = os.environ['LD_LIBRARY_PATH']
-    if 'SystemRoot' in os.environ:
-        # Copy SystemRoot into the custom environment for Python 2.6
-        # under Windows. Otherwise, the subprocess will fail with
-        # error 0xc0150004. See: http://bugs.python.org/issue3440
-        env['SystemRoot'] = os.environ['SystemRoot']
     cmd = [sys.executable, 'hg', 'id', '-i', '-t']
     l = runhg(cmd, env).split()
     while len(l) > 1 and l[-1][0].isalpha(): # remove non-numbered tags


More information about the Mercurial-devel mailing list