Sfoglia il codice sorgente

Set forall environment variables to empty string if None

If the value obtained is None we now set the variable to
'' instead, in an attempt to make execve() happier about
our 3rd argument, the env dictionary.

Signed-off-by: Shawn O. Pearce <sop@google.com>
Shawn O. Pearce 17 anni fa
parent
commit
1775dbe176
1 ha cambiato i file con 12 aggiunte e 7 eliminazioni
  1. 12 7
      subcmds/forall.py

+ 12 - 7
subcmds/forall.py

@@ -82,16 +82,21 @@ not redirected.
     rc = 0
     for project in self.GetProjects(args):
       env = dict(os.environ.iteritems())
-      env['REPO_PROJECT'] = project.name
-      env['REPO_PATH'] = project.relpath
-      env['REPO_REMOTE'] = project.remote.name
-      env['REPO_LREV'] = project\
+      def setenv(name, val):
+        if val is None:
+          val = ''
+        env[name] = val
+
+      setenv('REPO_PROJECT', project.name)
+      setenv('REPO_PATH', project.relpath)
+      setenv('REPO_REMOTE', project.remote.name)
+      setenv('REPO_LREV', project\
         .GetRemote(project.remote.name)\
-        .ToLocal(project.revision)
-      env['REPO_RREV'] = project.revision
+        .ToLocal(project.revision))
+      setenv('REPO_RREV', project.revision)
 
       if mirror:
-        env['GIT_DIR'] = project.gitdir
+        setenv('GIT_DIR', project.gitdir)
         cwd = project.gitdir
       else:
         cwd = project.worktree