Fix a bug in gclient recurse for git-svn users. Make gclient_utils.CheckCall more versatile.

TEST=none
BUG=none

Review URL: http://codereview.chromium.org/3737001

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@62400 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/gclient.py b/gclient.py
index 9cf30c7..989a1c4 100644
--- a/gclient.py
+++ b/gclient.py
@@ -888,9 +888,12 @@
     if scm_set and scm not in scm_set:
       continue
     cwd = os.path.normpath(os.path.join(root, path))
-    env['GCLIENT_SCM'] = scm
-    env['GCLIENT_URL'] = url
-    subprocess.Popen(args, cwd=cwd, env=env).communicate()
+    if scm:
+      env['GCLIENT_SCM'] = scm
+    if url:
+      env['GCLIENT_URL'] = url
+    gclient_utils.Popen(args, cwd=cwd, env=env).communicate()
+  return 0
 
 
 @attr('usage', '[url] [safesync url]')