Permalink
Browse files

Encode the environment variables passed to git

Windows allows the environment to have unicode values.
This will cause Python to fail to execute the command.

Change-Id: I37d922c3d7ced0d5b4883f0220346ac42defc5e9
Signed-off-by: Shawn O. Pearce <sop@google.com>
  • Loading branch information...
spearce committed Dec 7, 2010
1 parent d3fd537 commit f18cb761731a791bf1b9ee8c6308bfce5c9d3e62
Showing with 17 additions and 14 deletions.
  1. +7 −4 git_command.py
  2. +4 −4 repo
  3. +2 −2 subcmds/forall.py
  4. +4 −4 subcmds/sync.py
View
@@ -112,6 +112,9 @@ def git_require(min_version, fail=False):
sys.exit(1)
return False
+def _setenv(env, name, value):
+ env[name] = value.encode()
+
class GitCommand(object):
def __init__(self,
project,
@@ -137,10 +140,10 @@ def __init__(self,
del env[e]
if disable_editor:
- env['GIT_EDITOR'] = ':'
+ _setenv(env, 'GIT_EDITOR', ':')
if ssh_proxy:
- env['REPO_SSH_SOCK'] = ssh_sock()
- env['GIT_SSH'] = _ssh_proxy()
+ _setenv(env, 'REPO_SSH_SOCK', ssh_sock())
+ _setenv(env, 'GIT_SSH', _ssh_proxy())
if project:
if not cwd:
@@ -151,7 +154,7 @@ def __init__(self,
command = [GIT]
if bare:
if gitdir:
- env[GIT_DIR] = gitdir
+ _setenv(env, GIT_DIR, gitdir)
cwd = None
command.extend(cmdv)
View
8 repo
@@ -259,8 +259,8 @@ def _SetupGnuPG(quiet):
gpg_dir, e.strerror)
sys.exit(1)
- env = dict(os.environ)
- env['GNUPGHOME'] = gpg_dir
+ env = os.environ.copy()
+ env['GNUPGHOME'] = gpg_dir.encode()
cmd = ['gpg', '--import']
try:
@@ -378,8 +378,8 @@ def _Verify(cwd, branch, quiet):
% (branch, cur)
print >>sys.stderr
- env = dict(os.environ)
- env['GNUPGHOME'] = gpg_dir
+ env = os.environ.copy()
+ env['GNUPGHOME'] = gpg_dir.encode()
cmd = [GIT, 'tag', '-v', cur]
proc = subprocess.Popen(cmd,
View
@@ -151,11 +151,11 @@ def __init__(self, config, cmd):
first = True
for project in self.GetProjects(args):
- env = dict(os.environ.iteritems())
+ env = os.environ.copy()
def setenv(name, val):
if val is None:
val = ''
- env[name] = val
+ env[name] = val.encode()
setenv('REPO_PROJECT', project.name)
setenv('REPO_PATH', project.relpath)
View
@@ -269,7 +269,7 @@ def Execute(self, opt, args):
if branch.startswith(R_HEADS):
branch = branch[len(R_HEADS):]
- env = dict(os.environ)
+ env = os.environ.copy()
if (env.has_key('TARGET_PRODUCT') and
env.has_key('TARGET_BUILD_VARIANT')):
target = '%s-%s' % (env['TARGET_PRODUCT'],
@@ -413,9 +413,9 @@ def _VerifyTag(project):
% (project.name, rev)
return False
- env = dict(os.environ)
- env['GIT_DIR'] = project.gitdir
- env['GNUPGHOME'] = gpg_dir
+ env = os.environ.copy()
+ env['GIT_DIR'] = project.gitdir.encode()
+ env['GNUPGHOME'] = gpg_dir.encode()
cmd = [GIT, 'tag', '-v', cur]
proc = subprocess.Popen(cmd,

0 comments on commit f18cb76

Please sign in to comment.