From f18cb761731a791bf1b9ee8c6308bfce5c9d3e62 Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Tue, 7 Dec 2010 11:41:05 -0800 Subject: 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 --- git_command.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'git_command.py') diff --git a/git_command.py b/git_command.py index 4ad908f6..4aeacd57 100644 --- a/git_command.py +++ b/git_command.py @@ -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 @@ class GitCommand(object): 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 @@ class GitCommand(object): command = [GIT] if bare: if gitdir: - env[GIT_DIR] = gitdir + _setenv(env, GIT_DIR, gitdir) cwd = None command.extend(cmdv) -- cgit v1.2.3-54-g00ecf