Skip to content
This repository has been archived by the owner on Nov 8, 2023. It is now read-only.

Commit

Permalink
Browse files Browse the repository at this point in the history
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 Jan 10, 2011
1 parent d3fd537 commit f18cb76
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 14 deletions.
11 changes: 7 additions & 4 deletions git_command.py
Expand Up @@ -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,
Expand All @@ -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:
Expand All @@ -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)

Expand Down
8 changes: 4 additions & 4 deletions repo
Expand Up @@ -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:
Expand Down Expand Up @@ -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,
Expand Down
4 changes: 2 additions & 2 deletions subcmds/forall.py
Expand Up @@ -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)
Expand Down
8 changes: 4 additions & 4 deletions subcmds/sync.py
Expand Up @@ -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'],
Expand Down Expand Up @@ -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,
Expand Down

0 comments on commit f18cb76

Please sign in to comment.